分組查詢各省份的前十條記錄

SELECT * FROM (SELECT mu.*,Row_number() over(PARTITION BY mu.prov_code ORDER BY mu.prov_code) rn FROM  mvno_user mu) where rn <= 2;

在使用 row_number() over()函數時候,over()裏頭的分組以及排序的執行晚於 where group by order by 的執行。

partition by 是數據的分區取數,用於給結果集分組,如果沒有指定那麼它把整個結果集作爲一個分組,它和聚合函數不同的地方在於它能夠返回一個分組中的多條記錄,而聚合函數一般只有一個反映統計值的記錄。

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