GROUP BY YEAR(t.summaryDateTime), MONTH(t.summaryDateTime) DESC;
- это то, что вы хотите.
Это - то, как я делаю это:
GROUP BY EXTRACT(YEAR_MONTH FROM t.summaryDateTime);
Вы группируете только по месяцам, вам нужно добавить YEAR() к группировке по
Используйте
GROUP BY year, month DESC";
вместо
GROUP BY MONTH(t.summaryDateTime) DESC";
SELECT YEAR(t.summaryDateTime) as yr, GROUP_CONCAT(MONTHNAME(t.summaryDateTime)) AS month
FROM trading_summary t GROUP BY yr
Тем не менее, вам нужно будет обработать его во внешнем скрипте, чтобы получить именно ту структуру, которую вы ищете.
Например, используйте PHP explode для создания массива из списка названий месяцев, а затем используйте json_encode()