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

Bagaimana cara mendapatkan rata-rata nilai 'tengah' dalam suatu grup?

Opsi lain menggunakan fungsi analitik;

SELECT group_id,
       avg( test_value )
FROM (
  select t.*,
         row_number() over (partition by group_id order by test_value ) rn,
         count(*) over (partition by group_id  ) cnt
  from test t
) alias 
where 
   cnt <= 3
   or 
   rn between floor( cnt / 2 )-1 and ceil( cnt/ 2 ) +1
group by group_id
;

Demo --> http://www.sqlfiddle.com/#!11/af5e0 /59



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengekspor database PostgreSQL dengan phpPgAdmin

  2. Cara Mengaktifkan SSL di PostgreSQL

  3. Kesalahan Makefile PGXS tidak dapat ditemukan saat menginstal PostGis di Debian

  4. heroku run rake db:kesalahan migrasi

  5. SQL Query:Ambil baris yang dipesan dari tabel - II