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

Agregasi berdasarkan nilai median dalam SQL

Anda dapat menggunakan fungsi jendela. Dengan asumsi ini adalah nilai numerik:

select cobrand_id, avg(xsum) as median
from (select m.*,
             row_number() over (partition by cobrand_id order by xsum) as seqnum,
             count(*) over (partition by cobrand_id) as cnt
      from tmp_median m
     ) m
where 2*seqnum in (cnt, cnt + 1, cnt + 2)
group by cobrand_id;

where klausa memfilter baris menjadi 1 atau 2 untuk setiap cobrand_id (perhatikan 2* ), jadi ini berfungsi untuk angka genap dan ganjil di setiap partisi. Rata-rata dari nilai-nilai ini adalah median.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah tipe kolom dari variasi karakter menjadi integer menggunakan sqlalchemy-migrate

  2. Cara Membuat Array di PostgreSQL

  3. Bagaimana cara menghapus tampilan tabel * atau * dari database PostgreSQL?

  4. Setara dengan unpivot() di PostgreSQL

  5. Bagaimana cara menyalin data dari satu tabel ke tabel lain di postgres menggunakan perintah salin