就可视化而言,我知道这不是您所谈论的定期抽样,但我会查看用户的所有行并选择间隔桶,桶内的SUM并显示在条形图上或类似。 这将显示真实的“分布”,因为在一个时间范围内的许多事件可能是重要的。
SELECT DATEADD(day, DATEDIFF(day, 0, timefield), 0) AS bucket -- choose an appropriate granularity (days used here)
,COUNT(*)
FROM entries
WHERE uid = ?
GROUP BY DATEADD(day, DATEDIFF(day, 0, timefield), 0)
ORDER BY DATEADD(day, DATEDIFF(day, 0, timefield), 0)
或者,如果你不喜欢你必须重复自己的方式 - 或者你正在玩不同的桶并希望分析3-D中的许多用户(在Z中对x,y uid,bucket进行测量):
SELECT uid
,bucket
,COUNT(*) AS measure
FROM (
SELECT uid
,DATEADD(day, DATEDIFF(day, 0, timefield), 0) AS bucket
FROM entries
) AS buckets
GROUP BY uid
,bucket
ORDER BY uid
,bucket
如果我想在3-D中绘图,我可能会根据用户的一些有意义的总体指标来确定订购用户的方法。