Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chỉ loại trừ một giá trị MIN trên Oracle SQL

Để làm được điều này, bạn phải tách chúng ra bằng cách nào đó; vấn đề hiện tại của bạn là 2 điểm thấp nhất giống nhau nên bất kỳ hoạt động bình đẳng (trong) nào được thực hiện trên một trong hai giá trị sẽ xử lý giá trị kia giống hệt nhau.

Bạn có thể sử dụng một cái gì đó như truy vấn phân tích ROW_NUMBER() để xác định duy nhất các hàng:

select id, sum(score) / count(score) as score
  from ( select id, score, row_number() over (order by score) as score_rank
           from gamescore
          where gameno = 1
                )
 where score_rank <> 1
 group by id

ROW_NUMBER() :

Vì mệnh đề ORDER BY ở trên ĐIỂM theo thứ tự tăng dần, một trong những điểm thấp nhất sẽ bị loại bỏ. Đây sẽ là một giá trị ngẫu nhiên trừ khi bạn thêm các điều kiện ràng buộc khác vào ORDER BY.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách lấy dữ liệu một cột từ một bảng sang một bảng khác dưới dạng các cột khác nhau trong PL / SQL

  2. Kết nối với cơ sở dữ liệu Oracle bằng ROracle với tnsnames.ora trên Mac OS 10.10

  3. Giới hạn truy vấn SQL chỉ ở hai số lượng hàng đầu cho mỗi nhóm

  4. Câu lệnh FORALL với mệnh đề giá trị-OF Bound trong cơ sở dữ liệu Oracle

  5. Khai báo mảng động trong Oracle PL / SQL