我有这样的桌子:
id name start_date
1 abc 2019-12-27
1 asd 2019-12-27
1 dwq 2019-12-27
1 sre 2019-12-27
1 ers 2019-12-27
1 fas 2019-12-23
1 abc 2019-12-23
1 dwq 2019-12-23
2 wda 2019-12-23
2 wqw 2019-12-23
2 rew 2019-12-19
2 sdf 2019-12-19
2 vfd 2019-12-19
2 asd 2019-12-19
而且我想以某种方式对其进行过滤,以获取ID为1且日期最高的所有记录。当我这样做时:
SELECT id,MAX(start_date),name FROM table1 WHERE id=1 GROUP BY name;
我得到了这个结果:
1 abc 2019-12-27
1 asd 2019-12-27
1 dwq 2019-12-27
1 sre 2019-12-27
1 ers 2019-12-27
1 fas 2019-12-23
[还有一个名为'fas'的行,我猜它显示出来是因为该名称在2019-12-23日期是唯一的。如何正确过滤?
SELECT [DISTINCT] *
FROM table1
WHERE id = 1
AND start_date = ( SELECT MAX(start_date)
FROM table1
WHERE id = 1 )