mysql分组查询前n条数据

摘要:
建表:CREATETABLEhard(idINT,aavarchar(50),bbINT,PRIMARYkey(id))insertintohardvalues(1,'a',9)insertintohardvalues(2,'a',7)insertintohardvalues(3,'a',8)insertintohardvalues(4,'a',6)insertintohardvalues(5,'

建表:

CREATE TABLE hard(
id INT,
aa varchar(50) ,
bb INT,
PRIMARY key(id)
)
insert into hard values(1,'a',9)
insert into hard values(2,'a',7)
insert into hard values(3,'a',8)
insert into hard values(4,'a',6)
insert into hard values(5,'b',2)
insert into hard values(6,'b',3)
insert into hard values(7,'b',4)
insert into hard values(8,'c',1)
insert into hard values(9,'c',8)
insert into hard values(10,'c',2)

查询该表中,每组的最大两个数:

select a.* from hard a where (select count(*) from hard where aa = a.aa and bb > a.bb ) < 2 order by a.aa,a.bb desc

此处 2 即为n

(查询单表不分组的前n条最大数据: select DISTINCT bb from hard order by bb desc limit 2)

结果图:

mysql分组查询前n条数据第1张

mysql分组查询前n条数据第2张

原理剖析:

免责声明:文章转载自《mysql分组查询前n条数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JS无限添加HTML到指定位置浅谈软件性能测试中关键指标的监控与分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MYSQLdump参数详解

mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。 如果你在服务器上进行备份,并且表均为MyISAM表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。 有3种方式来调用mysqldump: shell> mysqld...

mysql 按天统计

使用示例 select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days;select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case gro...

分布式数据库中间件 MyCat | 分库分表实践

MyCat 简介 MyCat 是一个功能强大的分布式数据库中间件,是一个实现了 MySQL 协议的 Server,前端人员可以把它看做是一个数据库代理中间件,用 MySQL 客户端工具和命令行访问;而后端人员可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信。可以用作 读写分离、分库分表(分片)...

安装在CloudStack时CentOS6.4中安装MySQL通过mysql_secure_installation方式修改密码

在安装CloudStack时,通过mysql_secure_installation方式修改密码 01 [root@test ~]# /usr/bin/mysql_secure_installation 02 NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL 03 SER...

Linux服务器上安装织梦CMS

安装篇 第一步:配置防火墙(默认情况下,端口80和3306是拒绝访问的,在防火墙上进行配置): vi/etc/sysconfig/iptables(在"COMMIT"的上一行加上如下两句) -AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT(允许80端口通过防火墙) -AINPUT-mstate--s...

Mysql常见报错解决方法

一:登录报错 ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO) mysql日志文件总结此问题的整体步骤如下: 第一步:修改pid路径 查看日志文件中错误信息: cat /var/log/mysqld.log 2013-10-26 16:39...