0
我正在創建統計模塊。我的一項工作就是在過去的一週內爲註冊用戶創造情節。
問題是我的工作只是爲了少數客戶使用的服務,所以幾乎沒有人經常發生註冊事件。在執行GROUP BY的同時選擇零值
表描述(簡體)是:
TABLE users:
============
id serial NOT NULL,
date_created timestamp with timezone NOT NULL DEFAULT NOW()
獲得資金近7天內,我用
SELECT
COUNT(id) as ile,
DATE_TRUNC('day', date_created) as day
FROM
users
WHERE
date_created >= now() - INTERVAL '7 days'
GROUP BY 2
ORDER BY 2
一切正常,Postgres的返回例如:
ile | day
===========================
2 | "2013-09-23 00:00:00"
1 | "2013-09-25 00:00:00"
除了用0計數來忽略天數。 當然,我必須解析這個查詢的結果(在這種情況下:PHP + Symfony),所以我可以迭代通過期望的日期範圍並填充空白,但我想知道是否有簡單方式要求PostgreSQL做到這一點我,所以它返回是這樣的:
ile | day
===========================
2 | "2013-09-23 00:00:00"
0 | "2013-09-24 00:00:00"
1 | "2013-09-25 00:00:00"
0 | "2013-09-26 00:00:00"
0 | "2013-09-27 00:00:00"
0 | "2013-09-28 00:00:00"
0 | "2013-09-29 00:00:00"
老實說,我不知道,我可以執行與加盟> =或<。這是星期一,我今天學到了一些新東西。謝謝! :)查詢的作品,但不完美 - 它給出了錯誤的結果,我想這是因爲generate_series返回時間戳與時區,並有時間戳**沒有**用戶關係時區...但我想這是我會挖我。十分感謝! – ex3v