SQL查詢排名函數實例。本站提示廣大學習愛好者:(SQL查詢排名函數實例)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL查詢排名函數實例正文
在現實開辟中常常會碰到盤算某個字段的排名的情形
以下表:totak_sales
如今又如斯請求:按sales的逆序排序,請求添加一個sales_rank字段,顯示排名次序
辦法:
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC;
成果:
或:
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC;
成果:
由下面的計劃,我們可以持續推想,若何選出某項來呢?
好比排名為5的那項內容:
SELECT * from
(
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales < a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name)
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC
) as tab WHERE tab.sales_rank=5;
固然,此時假如將次序修正為3的話,就不克不及很好的查找到內容了,這個照樣一個弊病,需停止修正,待續
以上就是SQL查詢排名函數實例的全體內容,願望能給年夜家一個參考,也願望年夜家多多支撐。