Please help me understand why the following two queries return different results. The difference in the queries is only in the use of the DATE_FORMAT function in the GROUP BY clause.
Request 1:
SELECT DATE_FORMAT(T0.ET,'%Y/%m/%d %H%i'), SUM(T0.AT)
FROM(SELECT TIMESTAMPADD(second,(SEQ -1)*300, STR_TO_DATE('20170809135000','%Y%m%d%H%i%s')) ET, 1 AT
FROM SEQ_1_TO_10
WHERE SEQ <= 5) T0
group by T0.ET with rollup
Result 1:
'2017/08/09 1350', '1'
'2017/08/09 1355', '1'
'2017/08/09 1400', '1'
'2017/08/09 1405', '1'
'2017/08/09 1410', '1'
NULL, '5'
Request 2:
SELECT DATE_FORMAT(T0.ET,'%Y/%m/%d %H%i') , SUM(T0.AT)
FROM(SELECT TIMESTAMPADD(second,(SEQ -1)*300, STR_TO_DATE('20170809135000','%Y%m%d%H%i%s')) ET, 1 AT
FROM SEQ_1_TO_10
WHERE SEQ <= 5) T0
group by DATE_FORMAT(T0.ET,'%Y/%m/%d %H%i') with rollup
Result 2:
'2017/08/09 1350', '1'
'2017/08/09 1355', '1'
'2017/08/09 1400', '1'
'2017/08/09 1405', '1'
'2017/08/09 1410', '1'
'2017/08/09 1410', '5'
EXPLAIN SELECT are the same for both queries:
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
'1', 'SIMPLE', 'SEQ_1_TO_10', 'range', 'PRIMARY', 'PRIMARY','8', NULL, '5', 'Using where; Using index; Using filesort'