程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL查詢排名函數實例

SQL查詢排名函數實例

編輯:MSSQL

SQL查詢排名函數實例。本站提示廣大學習愛好者:(SQL查詢排名函數實例)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL查詢排名函數實例正文


在現實開辟中常常會碰到盤算某個字段的排名的情形

以下表:totak_sales

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072811303063.jpg

如今又如斯請求:按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;

成果:

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072811303050.jpg
或:

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;

成果:

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072811303020.jpg

由下面的計劃,我們可以持續推想,若何選出某項來呢?

好比排名為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;

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072811303043.jpg

固然,此時假如將次序修正為3的話,就不克不及很好的查找到內容了,這個照樣一個弊病,需停止修正,待續

以上就是SQL查詢排名函數實例的全體內容,願望能給年夜家一個參考,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved