2 weixin 38301587 weixin_38301587 于 2017.12.04 12:53 提问

mysql分组查询取每组前N条

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

12个回答

qq_35728177
qq_35728177   Ds   Rxr 2017.12.04 13:06

select top 4 * from table group by id

qq_35728177
qq_35728177 忘掉我的这条吧,开始以为这样写,但是想想有问题去试了试,发现狗屎! 不过不带子查询的还真没看到
11 天之前 回复
qq_35728177
qq_35728177   Ds   Rxr 2017.12.04 13:18

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

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

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

xuejiexiong
xuejiexiong   2017.12.04 14:22

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

en_joker
en_joker   2017.12.04 17:16

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

u013300742
u013300742   2017.12.04 18:09

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

daoying550
daoying550   2017.12.06 13:42

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

samior
samior   2017.12.07 16:22

select * from table group by id order by id desc

qq_38775728
qq_38775728   2017.12.09 15:00

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

Luo_da
Luo_da   2017.12.09 17:03

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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!