查询分组中的前几条记录
2009-07-31 11:48
253 查看
表如下 code class price 1 a 1 2 a 1.1 3 b 2 4 a 0.9 5 c 2.2 6 a 2 7 b 3 8 b 1.6 9 c 2 10 c 1 11 b 1.3 现在要按CLASS分别取处PRICE前2名的记录,如下 code class price 6 a 2 2 a 1.1 7 b 3 3 b 2 5 c 2.2 9 c 2 --------------------------------------------------------------- select * from tab a where (select count(*) from tab b where b.class = a.class and b.price > a.price) < 2 order by class,price desc (已通过测试,但不支持某种类型价格有并列第二的情况,思路就是这样,怎么解决并列的问题自己想想吧,这几天头痛,不想了) 若要解决并列可以将Count(*)改为count(distinct price)
相关文章推荐
- 查询分组后每个分组的前几条记录
- (转)查询分组后每个分组的前几条记录
- SQL实现分组查询取前几条记录
- SQL中分组函数的使用及前N条记录的查询方法
- SQL查询前几条记录
- 数据记录的操作(insert,select,update,delete)函数和分组查询(group by),表连接(join on),嵌套查询(in)
- groupby查询分组后按条件查询所需要的记录
- oracle 保存查询结果,查询分组后的没组的第n条记录
- mysql分组,取每组前几条记录
- mysql分组取每组前几条记录
- 分组取每组前几条记录(排名) 附group by与order by的研究
- 不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)
- 分组查询取最大时间记录的多种方式
- 查询前几条记录在不同数据库中的用法
- 查询前几条记录在不同数据库中的用法
- 记录一个mysql按日期分组统计的查询
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- mysql分组取每组前几条记录(排序)
- SQL查询前几条记录
- SQL分组查询,结果只取最新一条记录