首頁 > 資料庫 > mysql教程 > mysql中關於排名函數的具體介紹

mysql中關於排名函數的具體介紹

黄舟
發布: 2017-08-09 15:33:11
原創
1901 人瀏覽過

對MySQL資料表中的某一欄位進行排名


1.原始的表格數據如下圖。 done_seconds為完成的時間,需求為根據該欄位對每個資料進行排名。

mysql中關於排名函數的具體介紹


#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
登入後複製

mysql中關於排名函數的具體介紹

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

mysql中關於排名函數的具體介紹

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
登入後複製

mysql中關於排名函數的具體介紹

mysql中關於排名函數的具體介紹


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

mysql中關於排名函數的具體介紹

#6.當然也可以依需求加入where等限制條件。如下圖。


覺得有用的讚。


######################################### #

以上是mysql中關於排名函數的具體介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板