postgresql 窗口函數

postgresql系列之窗口函數詳細介紹:

https://blog.csdn.net/qq_31156277/article/details/83957166

 

例:要根據每個組中行數的百分比檢索行,可以使用兩個窗口函數:一個用於計算行,另一個用於爲它們提供唯一編號。

SELECT gp,
       val
FROM (
  SELECT gp, 
         val,
         COUNT(*) OVER (PARTITION BY gp) AS cnt,
         ROW_NUMBER() OVER (PARTITION BY gp ORDER BY val DESC) AS rn
  FROM temp
) t
WHERE rn / cnt <= 0.75;

 

例:查找前50%的數據

類似: SELECT TOP 50 PERCENT * FROM temp_table

SELECT rn,
       count
  FROM (
   SELECT ROW_NUMBER() OVER(ORDER BY xxx_column) AS rn,
          COUNT(*) OVER()
     FROM temp_table 
    WHERE xxx_column2 = 'xxx') t
 WHERE ROUND(rn::numeric/count::numeric,2) <= 0.5

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章