Не тот ответ, который вы просили, но ...
Похоже, что сначала в MySQL делать глупости. Просто глядя на необработанные строки данных, Q2 2008 и 2009 годов, похоже, не имеют особого смысла в качестве строк данных. Проблема носит презентационный характер, а не в получении данных. Звучит больше как что-то, что будет записано в ваш класс просмотра - например, при передаче определенного параметра он будет знать, что не следует повторять такие вещи, как «2008».
Это также обеспечивает большую возможность повторного использования кода: вместо того, чтобы переписывать запрос, когда вы хотите представить данные по-другому, скажем, по кварталам, а не по году, вы можете просто изменить один из аргументов класса просмотра так, чтобы один и тот же запрос с другим предложением порядка может вывести:
Quarter Year Total
Q1 2008 20
2009 15
Q2 2008 25
2009 20
...