LevelUp! Studio » sql https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 SQL – Query เพื่อทำการจัด Rank ของข้อมูล https://blog.levelup.in.th/2009/07/20/sql-ranksql-query-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%97%e0%b8%b3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94-rank-%e0%b8%82%e0%b8%ad%e0%b8%87%e0%b8%82%e0%b9%89%e0%b8%ad/ https://blog.levelup.in.th/2009/07/20/sql-ranksql-query-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%97%e0%b8%b3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94-rank-%e0%b8%82%e0%b8%ad%e0%b8%87%e0%b8%82%e0%b9%89%e0%b8%ad/#comments Mon, 20 Jul 2009 13:33:28 +0000 http://blog.levelup.in.th/?p=86 จาก http://www.1keydata.com/sql/sql-rank.html

Table Total_Sales

Name Sales
John 10
Jennifer 15
Stella 20
Sophia 40
Greg 50
Jeff 20

Query
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;

Result:

Name Sales Sales_Rank
Greg 50 1
Sophia 40 2
Stella 20 3
Jeff 20 3
Jennifer 15 5
John 10 6

ถ้าอยากให้เรียงลำดับโดยไม่มีข้ามให้แก้เป็น

Query
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 ASC;

]]>
https://blog.levelup.in.th/2009/07/20/sql-ranksql-query-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%97%e0%b8%b3%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94-rank-%e0%b8%82%e0%b8%ad%e0%b8%87%e0%b8%82%e0%b9%89%e0%b8%ad/feed/ 0