既要分組又要排序

2021-10-07 17:09:54 字數 700 閱讀 5838

常見查詢:查詢每個部門前三名薪水高的;查詢每個班級前三名

開始一頭霧水。。。

先宣告三個函式:

rank() 它產生的排名結果就是1114

dense_rank() 產生的結果為1112

row_number() 產生的結果為1234

模板:

select

*from

(select

*, row_number(

)over

(partition

by 要分組的列名 order

by 排序的列名 desc

) ranking

from 表名) a

where ranking <=

3

但是 ,發現有時候網頁編輯器不支援這樣,或者得到的結果和輸出不一致。。。

就只能用最原始最簡單的查詢了

select

*from employee e1

where

(select

count

(distinct e2.salary)

from employee e2

where e2.salary > e1.salary and e1.departmentid = e2.departmentid)

<

3;

既要勇於堅持,又要敢於拋棄

既要勇於堅持,又要敢於拋棄 追求財富不是一件容易的事,對老實人而言尤其如此。因此,一旦選擇了這條路,就要勇於堅持,對老實人而言還要學會變通,隨時根據形勢的發展調整自己的方向。要時刻驗證自己的目標 任何事物都有兩個方面,有的人由於堅持而終獲成功,而有的人卻因為堅持而一生失敗 這是什麼原因?歸根結底一句...

SQL分組排序

不得不承認,我腦子梗塞的很嚴重。表 gcc bloginfo blogid uid blogtitle createtime issketch checkright 1 1 hello 2010 04 01 2 1 2 1 hello2 2010 04 02 2 1 3 1 hello3 2010 ...

mysql分組排序

sql的分組排序是乙個難點,在leetcode中是乙個hard級別的題目。筆者這兩天在工作中遇到了這麼乙個需求。取過去一段時間範圍內銷量前500的商品,然後取每個商品裡面銷量最高的sku,一共500個sku。取銷量前500的商品好求,但是這500對應的最高的sku不太容易,需要用到分組排序。筆者在工...