我有一个表格,其格式如下:
ranking_date ranking player_id ranking_points
------------ ------- --------- ---------------
1980-12-22 3 100284 0
1980-12-22 21 100676 0
1980-12-22 44 100653 0
1980-12-22 136 100713 0
1980-12-22 182 100757 0
1980-12-22 211 100800 0
1980-12-22 255 101061 0
1980-12-22 283 101062 0
1980-12-22 372 100837 0
1980-12-22 390 100682 0
1980-12-22 423 100923 0
1980-12-22 440 100936 0
1983-01-03 2 100284 0
1983-01-03 7 101062 0
1983-01-03 9 100676 0
所以我想获得每年的最后rank_date。我有从1973年到2016年的排名,但不是所有的最后排名都在12月。此当前表也只有超过100万行,所以我这样做是为了获得年终排名。谢谢你的帮助!
答案 0 :(得分:1)
如果我正确理解您的问题,您正在尝试列出每年最后一次的排名记录。我打电话给你的桌子tablename
SELECT *
FROM tablename
WHERE ranking_date IN (SELECT MAX(ranking_date)
FROM tablename
GROUP BY YEAR(ranking_date))
子查询
SELECT Max(ranking_date) FROM tablename GROUP BY YEAR(ranking_date)
将确定每年的最后一次(最长或MAX
)日历日期。这些年份通过YEAR(ranking_date)
分组确定。将该子查询应用于主查询中的WHERE
子句应该提取每年最后一次的记录。