четверг, 19 ноября 2009 г.

Сбор статистики

Чуть позже напишу о чем и зачем этот блог, а пока делюсь фишкой, которую узнал буквально только что.

Часто бывает так, особенно при выводе  статистики, что нужно вывести данные разбитые по дням, а внизу - агрегированные данные, часто - сумма данных по дням.

Обычно такая задача решается следующим образом: Делается запрос вида

SELECT date, sum(money) as day_earning FROM my_stats GROUP BY date

А потом вручную считаем сумму за все дни.

Однако в mysql есть возможность извлечь эти данные одним запросом:
SELECT date, sum(money) as day_earning FROM my_stats GROUP BY date WITH ROLLUP
В этом случае результат будет такой же как и у первого запроса и последняя строчка со значением NULL в поле date и суммой за все дни в поле day_earning.

Комментариев нет: