Nat*_*ppi 8 mysql sql greatest-n-per-group
我已经对这个问题进行了研究,但我找不到解决方案.
我有以下查询,给我一个"some_id"列表:
SELECT some_id FROM example GROUP BY some_id
Run Code Online (Sandbox Code Playgroud)
我有以下查询,将获得"some_id"等于数字的行的5个最新条目的列表.
SELECT * FROM example
WHERE some_id = 1
ORDER BY last_modified DESC
LIMIT 5
Run Code Online (Sandbox Code Playgroud)
如何只使用一个查询,为每个"some_id"从表"example"中获取前5个最新条目?如果"some_id"的条目少于5个,则可以包含它们,如果这样可以减少复杂性.
非常感谢!
Nat*_*ppi 11
在查看以下帖子中的第一个答案时找到答案:
我修改它以满足我的特定需求:
SELECT * FROM
(
SELECT *, @num := if(@some_id = some_id, @num := @num + 1, 1) as row_num,
@some_id := some_id as some_id
FROM example
ORDER BY last_modified DESC
) as e
WHERE row_num <= 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14579 次 |
| 最近记录: |