明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

mysql中對(duì)于排名函數(shù)的具體介紹

[摘要]對(duì)MySQL數(shù)據(jù)表中的某一字段進(jìn)行排名1.原始的表數(shù)據(jù)如下圖。done_seconds為完成的時(shí)間,需求為根據(jù)該字段來(lái)對(duì)每條數(shù)據(jù)進(jìn)行排名。2.輸入以下SQL語(yǔ)句:SELECT A.*,@rank:=...
對(duì)MySQL數(shù)據(jù)表中的某一字段進(jìn)行排名


1.原始的表數(shù)據(jù)如下圖。done_seconds為完成的時(shí)間,需求為根據(jù)該字段來(lái)對(duì)每條數(shù)據(jù)進(jìn)行排名。

1.png


2.輸入以下SQL語(yǔ)句:

SELECT A.*,@rank:=@rank+1 AS pm FROM (SELECT * FROM task_news_user_done_list ORDER BY done_seconds) A, (SELECT  @rank:=0) B

2.png

3.執(zhí)行該條語(yǔ)句后,查詢(xún)出來(lái)的結(jié)果中,加入了pm字段。該字段的值就是根據(jù)done_seconds進(jìn)行排序的結(jié)果。注意,升序,降序的問(wèn)題。

3.png

4.除了單個(gè)字段外,還可以對(duì)平均值進(jìn)行排序。如對(duì)上表中相同user_email的done_seconds的平均值進(jìn)行排序,可用以下sql語(yǔ)句:

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

4.png

5.排序后結(jié)果如下圖。此時(shí)的排名就是所有相同user_email的done_seconds進(jìn)行的平均值排名。

5.png


6.當(dāng)然還可以根據(jù)需要加入where等限制條件。如下圖。

覺(jué)得有用的點(diǎn)下贊。

6.png


以上就是mysql中關(guān)于排名函數(shù)的具體介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。