sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan får man gennemsnittet af de 'midterste' værdier i en gruppe?

En anden mulighed ved hjælp af analytiske funktioner;

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. Hvad svarer PostgreSQL til SYSDATE fra Oracle?

  2. Hibernate hbm2ddl.auto standardværdi

  3. Hvordan kan jeg nemt analysere en Oracle-pakkes udførelse for ydeevneproblemer?

  4. Ulovlig streng offset 'navn' laravel