mysql分组查询取每组前N条

请大神支招:怎样用分组查询得到每组前4条数,(注:数据量较大,不能使用子查询)

12个回答

select top 4 * from table group by id

qq_35728177
Tsui丶 忘掉我的这条吧,开始以为这样写,但是想想有问题去试了试,发现狗屎! 不过不带子查询的还真没看到
2 年多之前 回复

http://blog.csdn.net/zhichao2001/article/details/6068893 这可以参考下 其他的也无能为力了

qq_35728177
Tsui丶 回复Rangers178: 不不不,你可以去试一下 如果使用了group by 然后你所查询的又并没有使用聚合函数的话是会报错无法查询的 top 和 limit其实就没区别了
2 年多之前 回复
Rangers178
Rangers178 直接加limit 0,4 应该可以解决
2 年多之前 回复

select you need character from the table group by "" limit0,4

分组之后按理来说每一组的数据要么是唯一的要么就是一样的数据,你要怎么查前4条?,除非是你分组的字段以外还有字段,那么怎么可能不用子查询

首先分组分别获取总数,然后包裹一层,分别取前四个。

实在不行,在后台代码做,操作未必都要用mysql语句去解决

select top 4 列名 from 表名l group by 列名

select * from table group by id order by id desc

select * from (
select row_number() over(partition by ancester分组列 order by productid排序列) as a,* from Products
) as p where a<4前4个

select (@i:=@i+1)i, id, operator, startDate _ledge_form a,(select @i:=0) t2 where submit_type=1 order by a.orderId asc 实现排序功能

共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问