mysql中對于排名函數的具體介紹
發表時間:2023-07-23 來源:明輝站整理相關軟件相關文章人氣:
[摘要]對MySQL數據表中的某一字段進行排名1.原始的表數據如下圖。done_seconds為完成的時間,需求為根據該字段來對每條數據進行排名。2.輸入以下SQL語句:SELECT A.*,@rank:=...
對MySQL數據表中的某一字段進行排名
1.原始的表數據如下圖。done_seconds為完成的時間,需求為根據該字段來對每條數據進行排名。

2.輸入以下SQL語句:
SELECT A.*,@rank:=@rank+1 AS pm FROM (SELECT * FROM task_news_user_done_list ORDER BY done_seconds) A, (SELECT @rank:=0) B

3.執行該條語句后,查詢出來的結果中,加入了pm字段。該字段的值就是根據done_seconds進行排序的結果。注意,升序,降序的問題。

4.除了單個字段外,還可以對平均值進行排序。如對上表中相同user_email的done_seconds的平均值進行排序,可用以下sql語句:
SELECT A.*,@rank:=@rank+1 AS pm
FROM
(SELECT user_email, AVG(done_seconds) AS done_seconds FROM task_news_user_done_list GROUP BY user_email ORDER BY done_seconds) A, (SELECT @rank:=0) B

5.排序后結果如下圖。此時的排名就是所有相同user_email的done_seconds進行的平均值排名。

6.當然還可以根據需要加入where等限制條件。如下圖。
覺得有用的點下贊。

以上就是mysql中關于排名函數的具體介紹的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。