【发布时间】:2010-07-24 12:11:37
【问题描述】:
我有一个数据库,可以显示关于不同活动的不同统计信息,每一行都有一个时间戳值名称“日期”。
我编写了用于选择和汇总日期范围的代码,例如:21-24/07/2010。 现在我需要添加一个选项来选择日期范围,还要对每 X 天的统计数据进行分组。
假设用户选择查看整个月的统计数据:01/07-31/07。我想向他展示按 X 天分组的统计数据,比如说 3,所以他会看到 01-03/07、04-06/07、07-09/07 等统计数据...
我几乎用这段代码做到了:
SELECT t1.camp_id,from_days( floor( to_days( date ) /3 ) *3 ) AS 'first_date'
FROM facebook_stats t1
INNER JOIN facebook_to_campaigns t2 ON t1.camp_id = t2.facebook_camp_id
WHERE date
BETWEEN 20100717000000
AND 20100724235959
GROUP BY from_days( floor( to_days( date ) /3 ) *3 ) , t2.camp_id
它实际上确实将它分组(按 3 天),但问题是由于某种原因它从 16/07 而不是 17/07 开始,然后每次分组 3 天。
希望听到代码的解决方案或我给出的或您想到的更好的解决方案。
【问题讨论】:
标签: mysql group-by statistics