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

SQL phân biệt nhiều cột

các câu hỏi thường được giải quyết bằng cách sử dụng các hàm cửa sổ:

select *
from (
   select book_id, author_id, mark, year, 
          row_number() over (partition by author_id order by case mark when 'GREAT' then 1 when 'MEDIUM' then 2 else 3 end) as rn
   from books
) t
where rn = 1;

Ở trên là ANSI SQL tiêu chuẩn, nhưng trong Postgres sử dụng distinct on thường nhanh hơn nhiều:

select distinct on (author_id) book_id, author_id, mark, year, 
from books
order by author_id, 
         case mark when 'GREAT' then 1 when 'MEDIUM' then 2 else 3 end



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đếm số lần xuất hiện cho tất cả các giá trị khác nhau trong cột cơ sở dữ liệu?

  2. Làm cách nào để tôi (hoặc tôi có thể) CHỌN DISTINCT trên nhiều cột?

  3. Định cấu hình một `DataSource` để kết nối với máy chủ Postgres được quản lý trên Digital Ocean với mã hóa SSL / TLS

  4. Tên phần tử XML từ dữ liệu trong Postgres

  5. Kết nối JDBC được tạo trong ineclipse không hoạt động như bình thường