Итоги подсчета SQL в диапазонах дат - PullRequest
1 голос
/ 02 июня 2011

У меня есть таблица CHANGES с полями VALUE (целое число) и CREATED_AT (временная метка). Я хочу узнать сумму столбца VALUE, сгруппированного по каждому из последних 30 дней (без выполнения 30 запросов).

Итак, если вчера были созданы записи со значениями 10, -7 и 12; Я хотел бы, чтобы запись возвращалась с CREATED_AT = вчера и TOTAL = 15.

Любая помощь?

Ответы [ 2 ]

4 голосов
/ 02 июня 2011
SELECT date(created_at) as CREATED_AT, sum(value) as TOTAL
FROM changes
WHERE created_at >= curdate() - interval 30 day
GROUP BY date(created_at);
1 голос
/ 02 июня 2011

Ну, это немного зависит от того, в каком формате отформатирована временная метка (SQL / Unix / и т. Д.). Но этот тип запроса может помочь вам:

SELECT
   DATE_FORMAT(CREATED_AT, '%Y-%m-%d') ym,
   COUNT(VALUE)
FROM foo
GROUP BY ym
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...