PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SQL beberapa kolom berbeda

pertanyaan biasanya diselesaikan menggunakan fungsi jendela:

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;

Di atas adalah standar ANSI SQL, tetapi di Postgres menggunakan (bersifat eksklusif) distinct on biasanya jauh lebih cepat:

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. Ubah Tanggal Julian menjadi tanggal Kalender di Postgresql

  2. Cara Memanfaatkan Fitur Partisi Baru di PostgreSQL 11

  3. Batasi jumlah catatan dalam Model yang dapat memiliki nilai per pengguna

  4. Menginstal pgroonga di macosx (dengan Postgres.app)

  5. Metode yang tidak ditentukan auto_upgrade! saat mendorong aplikasi Sinatra/DataMapper ke Heroku