mysql 分组取前N记录
来源:互联网 发布:ubuntu登录不进去 编辑:程序博客网 时间:2024/04/27 19:14
要求取出各班前两名(允许并列第二)
create table Table1 (id int auto_increment primary key, SName varchar(50),ClsNo varchar(20), Score int(3));
insert into Table1(SName,ClsNo,Score) values('AAAA','C1',67),('BBBB','C1',55);
insert into Table1(SName,ClsNo,Score) values('CCCC','C1',67),('DDDD','C1',65)('EEEE','C1',95);
insert into Table1(SName,ClsNo,Score) values('FFFF','C2',57),('GGGG','C2',87),('HHHH','C2',74);
insert into Table1(SName,ClsNo,Score) values('IIII','C2',52),('JJJJ','C2',81),('KKKK','C2',67);
insert into Table1(SName,ClsNo,Score) values('LLL','C2',66);
要求取出各班前两名(允许并列第二)
select *
from Table1 a
where 2>(select count(*) from Table1 where ClsNo=a.ClsNo and Score>a.Score)
order by a.ClsNo,a.Score desc
或者
select *
from Table1 a
where id in (select id from Table1 where ClsNo=a.ClsNo order by Score desc limit 2)
order by a.ClsNo,a.Score desc
特例 N=1 ,即取最大的/最小的一条记录。
select *
from Table1 a
where not exists (select 1 from Table1 where ClsNo=a.ClsNo and Score>a.Score);
select *
from (select * from Table1 order by Score desc) t
group by ClsNo
- mysql分组取前n条记录
- mysql 分组取前N记录
- 分组取前N记录
- 分组取前N记录
- 分组取前N记录
- 分组取前N记录
- Mysql分组统计、排序、取前N条记录解决方案
- mysql学生成绩排名,分组取前 N 条记录
- Hive和MySQL分组排序取前n条记录
- MYSQL 分组取前N条数据
- mysql分组排序取前N条记录的最简洁的单条sql !
- mysql分组排序取前N条记录的最简洁的单条sql
- MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL
- mysql中GROUP BY分组取前N条记录实现
- MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL
- MySQL 查询分页数据中分组后取每组的前N条记录
- MySQL 查询分页数据中分组后取每组的前N条记录
- mysql 分组取前窗口前N的方法
- Retrofit在项目中的应用
- uses-permission与persmission
- 第八章 连接器
- python SQLAlchemy创建mysql数据库连接
- C++实验6-数组合并
- mysql 分组取前N记录
- git的使用
- cocospod配置
- 通货膨胀对什么人有好处?普通人如何应对或是从中牟利呢?
- 常用正则表达式
- Android 关于系统Context.getSystemService(String arg0)获取系统服务的详细剖析-getSystemService
- pl/sql快速输入select * from等语句
- 【J2SE】JAVA_GUI-获取字符串的高度和宽度
- 在javascript脚本中使用JSON进行数据传输