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

postgres:dapatkan n kemunculan nilai teratas dalam setiap grup

Sesuatu seperti ini:

select *
from (
    select userid, 
           letter, 
           dense_rank() over (partition by userid order by count(*) desc) as rnk
    from letters
    group by userid, letter
) t
where rnk <= 2
order by userid, rnk;

Perhatikan bahwa saya mengganti user dengan userid karena menggunakan kata khusus untuk kolom adalah kebiasaan buruk.

Berikut adalah SQLFiddle:http://sqlfiddle.com/#!12/ec3ec/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Temukan semua keturunan langsung di pohon

  2. daftar tipe Postgres ENUM

  3. Tips untuk Memantau PostgreSQL untuk Moodle

  4. Bagaimana Anda mengatasi batasan ukuran Docker.qcow2 di Docker untuk Mac?

  5. Menemukan kelompok bilangan berurutan terbesar dalam sebuah partisi