我希望有人能提供帮助。我有一张 table ....
name date number
John 2014-01-01 5
Sally 2014-01-01 7
John 2013-12-24 2
Sally 2013-12-24 7
John 2013-11-10 1
Sally 2012-11-10 8
我想为每个人获取最新的 2(或 x)条记录,例如
John 2014-01-01 5
John 2013-12-24 2
Sally 2014-01-01 7
Sally 2013-12-24 7
我不知道从哪里开始。如果有人能对此有所了解,我将不胜感激。如果您能出于学习目的解释解决方案,那也很好(如果您有时间)!
非常感谢
朱尔斯
最佳答案
SELECT x.*
FROM my_table x
JOIN my_table y
ON y.name = x.name
AND y.date >= x.date
GROUP
BY x.name
, x.date
HAVING COUNT(*) <= 2
ORDER
BY name,date DESC;
关于mysql - 为一组中的每个选择最后 n 个日期记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483775/