mysql - Select 10 rows for each id in
问题描述
How I can get 10 rows for each id_recipient ?
SELECT id FROM msg WHERE id_recipient IN (1,2,3,4,5)
So request should return 50 rows(10 rows for each id_recipient)
解决方案
您可以使用ROW_NUMBER
(MySQL 8.0+):
SELECT sub.id
FROM (SELECT id,
ROW_NUMBER() OVER(PARTITION BY id_recipient ORDER BY some_col) AS rn
FROM msg
WHERE id_recipient IN (1,2,3,4,5)) AS sub
WHERE rn <= 10;
推荐阅读
- android - 使用 RecyclerVew 的警报对话框
- python - 我大学的集群没有连接到互联网,所以我不能使用 conda 来创建带有 python 2.7 的环境。我还可以做些什么?
- android - 如何使用 Volley 将 header 和 body 添加到 REST 请求中?
- python - 检查 JSON 是否存在密钥
- c# - 如何以 ac# windows 形式获取我的特定位置(纬度和经度)?
- dart - 在颤振/飞镖中获取视频细节
- android - RecyclerView 的行项目视图隐藏/显示在 Recyclerview 滚动时变得混乱
- javascript - 如何将字符串与字符串数组匹配
- permissions - Hybris 为扩展项目类型创建权限
- html - 溢出换行未应用于文本