sql >> データベース >  >> RDS >> PostgreSQL

SQLの中央値による集計

    ウィンドウ関数を使用できます。これが数値であると仮定します:

    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 句は、cobrand_idごとに行を1または2にフィルタリングします (2*に注意してください )、したがって、これは各パーティションの偶数と奇数の両方で機能します。これらの値の平均が中央値になります。




    1. 主キーと一意キーを使用したテーブルの予期しないロック

    2. 現在の日付から最後の 12 か月と、取得した先月の 1 日までの余分な日数を取得するにはどうすればよいですか

    3. 下降傾向のSQLでユーザーを特定する

    4. MySQLの小数:ラウンドではなくフロア