我在 MySql 5.7 中有一个表,其中根据日期重复出现许多名称。我需要恢复每个名称的前2条记录。
例如:
name year month
xxxx 2019 8
xxxx 2019 7
xxxx 2019 6
xxxx 2019 5
.... .... ..
zzzz 2019 5
zzzz 2019 4
zzzz 2019 3
zzzz 2019 2
.... .... ..
期望结果:
name year month
xxxx 2019 8
xxxx 2019 7
zzzz 2019 5
zzzz 2019 4
other ...
我需要检索每个名称的前两条记录,不可以使用日期子句来实现。
我试图模拟的查询:
SELECT
name, year, month
FROM (
SELECT
*,
row_number() OVER (PARTITION BY name ORDER BY year DESC, month DESC)
FROM
table
) a
WHERE row_number <= 2
谢谢。