mysql分组后,取每组的前3条数据(并且有顺序)

mysql分组后,取每组的前3条数据(并且有顺序),第1张

不列出表结构及测试数据,只能这样大概写个思路了:

select a.*

from

(

select t1.*,(select count(*)+1 from 表 where 分组字段=t1.分组字段 and 排序字段<t1.排序字段) as group_id

from 表 t1

) a

where a.group_id<=3

Try this one,should be fine下面这个已经有排序了哦,不行么? SELECT uid, group_concat(subject)FROM (SELECT id, uid, subject FROM (SELECT id, uid, subject, (SELECT COUNT(*) FROM t_subject WHERE uid = t.uid AND subject <= t.subject) RKFROM t_subject t) t1WHERE rk <= 3) t2 GROUP BY uid 多了个a.原来或者你直接用个substring()得了。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6121074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存