mysql 查询每组前三_Mysql 分组以后取每组的前三名数据

mysql>select*fromt_subject;|id|uid|subject||1|1|aa||2|2|bb||3|3|cc||4|4|dd||5|2|ee||6|2|rr||7|3|tt||8|2|yy||9|3|qq||10|4|oo||11|3|pp||12|3|kk||13|1|mm||14|4|nn||15|1|ss||...

mysql> select * from t_subject;

| id | uid | subject |

| 1 | 1 | aa |

| 2 | 2 | bb |

| 3 | 3 | cc |

| 4 | 4 | dd |

| 5 | 2 | ee |

| 6 | 2 | rr |

| 7 | 3 | tt |

| 8 | 2 | yy |

| 9 | 3 | qq |

| 10 | 4 | oo |

| 11 | 3 | pp |

| 12 | 3 | kk |

| 13 | 1 | mm |

| 14 | 4 | nn |

| 15 | 1 | ss |

| 16 | 4 | vv |

| 17 | 1 | ff |

mysql> select uid,group_concat(a.subject) from t_subject a group by a.uid ;

| uid | group_concat(a.subject) |

| 1 | aa,ff,ss,mm |

| 2 | yy,rr,ee,bb |

| 3 | kk,pp,xx,qq,tt,cc |

| 4 | nn,dd,vv,oo |

----我想要的是如下效果的 该怎么写啊(就是取出分组后每组的前三条记录)---

| uid | group_concat(a.subject) |

| 1 | aa,ff,mm |

| 2 | yy,rr,ee |

| 3 | kk,pp,xx |

| 4 | nn,dd,vv |

要排序的啊!用substring不过必须要排序后才能截取啊

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值