我有一个CHANGES表,其字段为VALUE(整数)和CREATED_AT(时间戳)。我想知道按过去30天分组的VALUE列的总数(不进行30次查询)。
因此,如果昨天有使用VALUE为10,-7和12创建的记录;我想要一个CREATED_AT =昨天和TOTAL = 15返回的记录。
任何帮助?
答案 0 :(得分:4)
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 :(得分:1)
嗯,它稍微取决于格式化时间戳的类型(SQL / Unix / etc)。但是这种类型的查询可能对您有所帮助:
SELECT
DATE_FORMAT(CREATED_AT, '%Y-%m-%d') ym,
COUNT(VALUE)
FROM foo
GROUP BY ym