日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql rank函数怎么用_mysql rank函数怎么用

發布時間:2023/12/18 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql rank函数怎么用_mysql rank函数怎么用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

匿名用戶

1級

2016-07-21 回答

轉:

Mysql 的rank 函數如何實現

表特征:

mysql> select * from test;

+------+------+

| a | b |

+------+------+

| 1 | 20 |

| 1 | 21 |

| 1 | 24 |

| 2 | 20 |

| 2 | 32 |

| 2 | 14 |

+------+------+

6 rows in set (0.00 sec)

現在,我們以a分組,查詢b列最大的2個值。 這條sql要怎么寫了?

1.創建表

Create Table: CREATE TABLE `sam` (

`a` int(11) DEFAULT NULL,

`b` int(11) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8

2.插入模擬數據

INSERT INTO `sam` VALUES (1,10),(1,15),(1,20),(1,25),(2,20),(2,22),(2,33),(2,45);

+------+------+

| a | b |

+------+------+

| 1 | 10 |

| 1 | 15 |

| 1 | 20 |

| 1 | 25 |

| 2 | 20 |

| 2 | 22 |

| 2 | 33 |

| 2 | 45 |

+------+------+

3.SQL實現

select a,b,rownum,rank from

(select ff.a,ff.b,@rownum:=@rownum+1 rownum,if(@pa=ff.a,@rank:=@rank+1,@rank:=1) as rank,@pa:=ff.a

FROM

(select a,b from sam group by a,b order by a asc,b desc) ff,(select @rank:=0,@rownum:=0,@pa=null) tt) result

having rank <=2;

4.結果:

+------+------+--------+------+

| a | b | rownum | rank |

+------+------+--------+------+

| 1 | 25 | 1 | 1 |

| 1 | 20 | 2 | 2 |

| 2 | 45 | 5 | 1 |

| 2 | 33 | 6 | 2 |

+------+------+--------+------+

4 rows in set (0.00 sec)

總結

以上是生活随笔為你收集整理的mysql rank函数怎么用_mysql rank函数怎么用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。