常見查詢:查詢每個部門前三名薪水高的;查詢每個班級前三名
開始一頭霧水。。。
先宣告三個函式:
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不太容易,需要用到分組排序。筆者在工...