mysql rank函数怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql rank函数怎么用相关的知识,希望对你有一定的参考价值。

参考技术A 转:
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)

rank怎么用

参考技术A

rank函数可以按降序需要升序进行排列,只需在表格中输入公式RANK,对于多列数据排序时。

可选种表格区域,按Ctrl+G打开定位对话框,选择控制并确定,之后在表格中输入RANK,并按下Ctrl+Enter组合键即可。

在excel中我们经常需要使用函数来处理数据,rank函数就是其中一种,它可以用来对某一列数据进行排序后得出顺序;rank函数可以按降序需要升序进行排列,只需在表格中输入公式RANK,对于多列数据排序时,可选种表格区域,按Ctrl+G打开定位对话框,选择控制并确定,之后在表格中输入RANK,并按下Ctrl+Enter组合键即可。

使用RANK函数计算名次

在文件夹中找到自己想要编辑的Excel,双击打开Excel,如果没有那就新建一个Excel工作表格,然后自行编辑一些数据来做处理。将光标停在名次下面的空白处,在最上面的那一个菜单栏中找到‘公式’选项。

点击它之后再在最左边找到并点击‘插入函数’选项。在所弹出来的选项框中,在第一个框里输入rank,点击转到,并在下面的选项框里选择rank函数。最后再点击确定。

以上是关于mysql rank函数怎么用的主要内容,如果未能解决你的问题,请参考以下文章

oracle rank函数怎么用

rank怎么用

mysql窗口函数rank() over、dense_rank() over、row_number() over 使用心得

oracle sql rank函数取排序值

MySQL窗口_分布、前后、头尾函数

SQL 怎么用指定条件查询RANK函数生成的新排名列?