我的表结构如下的Mysql按日期排序和group by结果不同
id parent last_date sub_type
----------------------------------
11 9 2017-02-28 1101
10 9 2016-08-26 1101
8 1 2017-02-20 1101
12 12 2016-08-31 1102
14 12 2016-12-20 1102
9 9 2016-12-31 1101
13 12 2017-03-23 1102
2 1 2017-01-25 1101
1 1 2016-12-31 1101
我想基于日期(最长的第一)各sub_type读取行。我想下面的查询
SELECT * FROM mytable GROUP BY sub_type ORDER BY ISNULL(last_date) DESC, last_date DESC
并且它导致
id parent last_date sub_type
--------------------------------
1 1 2016-12-31 1101
12 12 2016-08-31 1102
但我希望下面的结果。
id parent last_date sub_type
--------------------------------
13 12 2017-03-23 1102
11 9 2017-02-28 1101
请指导我以取得以上结果。
编辑:
LAST_DATE可能有NULL值将超过日最大项的优先级。这就是为什么我选择ISNULL DESC命令。
'SELECT sub_type,MAX(last_date)FROM mytable GROUP BY sub_type'? –
'id'主键? –
如果存在多个空记录会怎么样?您想要获取哪张唱片? – Blank