mysql中关于排名函数的具体介绍

黄舟
Lepaskan: 2017-08-09 15:33:11
asal
1896 orang telah melayarinya

对MySQL数据表中的某一字段进行排名


1.原始的表数据如下图。done_seconds为完成的时间,需求为根据该字段来对每条数据进行排名。

1.png


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
Salin selepas log masuk

2.png

3.执行该条语句后,查询出来的结果中,加入了pm字段。该字段的值就是根据done_seconds进行排序的结果。注意,升序,降序的问题。

3.png

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
Salin selepas log masuk

4.png

5.排序后结果如下图。此时的排名就是所有相同user_email的done_seconds进行的平均值排名。

5.png


6.当然还可以根据需要加入where等限制条件。如下图。

觉得有用的点下赞。

6.png



Atas ialah kandungan terperinci mysql中关于排名函数的具体介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan