mysql ;rank函数怎么用

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个值。
mysql ;rank函数怎么用
转:
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)2019-07-28
mengvlog 阅读 27 次 更新于 2025-09-10 09:59:47 我来答关注问题0
  •  深空见闻 mysql可以一边写一边读吗?

    MySQL可以一边写一边读。MySQL数据库的一个重要特性就是支持并发的读操作和写操作。这意味着,在同一时间段内,多个用户或应用程序可以同时访问数据库,进行读取和写入数据的操作。这种并发处理能力极大地提高了数据库的效率和性能。并发读写的优势:提高性能:通过允许同时读写,MySQL能够充分利用系统资源,...

  •  赛玖久生活日记 初识mysql(5)

    使用EXPLAIN命令:EXPLAIN命令是MySQL提供的一个非常有用的工具,它可以显示查询的执行计划。通过查看执行计划,我们可以了解查询语句的ID号、语句类型、表、分区、访问方法、索引使用情况等信息。这些信息可以帮助我们分析查询性能瓶颈,并进行相应的优化。使用OPTIMIZER TRACE功能:在MySQL 5.6及更高版本中,...

  •  誉祥祥知识 MySQL5.7数据库Unknown error

    答案:MySQL 5.7 数据库在特定情况下会出现 "Unknown error" 的错误提示,这通常是由于 lc_messages_dir 参数设置的目录错误或无法访问导致的。当 MySQL 尝试打开该目录以读取错误消息文件时,如果失败,MySQL 5.7 的错误处理机制会将错误描述信息初始化为空字符串,从而导致 "Unknown ...

  •  阿暄生活 电脑系统重装mysql服务,mysql57重装

    电脑系统重装MySQL服务(MySQL 5.7)的步骤如下:一、检查并安装MySQL服务 检查MySQL服务是否安装:首先,需要检查MySQL服务是否已经安装在系统上。可以通过系统服务列表或命令行工具来检查。手动添加MySQL服务:如果MySQL服务未在系统服务列表中,需要手动添加。这通常涉及运行MySQL安装目录下的特定命令或脚本。

  •  赛玖久生活日记 MySQL 15.常见数据类型

    MySQL 常见数据类型 MySQL 支持多种数据类型,这些数据类型可以分为数值型、字符型和日期型三大类。以下是这些类型的详细介绍:一、数值型 数值型数据用于存储数值,包括整型和小数。整型 Tinyint:1个字节,范围:-128 到 127(有符号),0 到 255(无符号)。Smallint:2个字节,范围:-32,768 到...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部