日期范围内的SQL计数总计

时间:2011-06-02 01:58:40

标签: mysql sql sqlite postgresql

我有一个CHANGES表,其字段为VALUE(整数)和CREATED_AT(时间戳)。我想知道按过去30天分组的VALUE列的总数(不进行30次查询)。

因此,如果昨天有使用VALUE为10,-7和12创建的记录;我想要一个CREATED_AT =昨天和TOTAL = 15返回的记录。

任何帮助?

2 个答案:

答案 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