【发布时间】:2014-04-11 14:03:46
【问题描述】:
最近我想在 PostgreSQL 上做一个 sql 查询,它可以计算某个时间段(一个月或一天等)的每天(或可能每小时)的表记录。
换句话说,一个周期(月)的每一天的循环。
我该怎么做?
我希望记录可以是这样的:
--------------------
count | day | month |
1 | 1 | 4 |
1 | 2 | 4 |
1 | 3 | 4 |
1 | 4 | 4 |
1 | 5 | 4 |
更新:
我有一个名为visitors的表:
first_seen:date_time; last_seen:日期时间; id: 整数
我想计算一个月中每一天的总访问量。但由于访问者一次可以出现超过多天,即停留 3 天。我发现一个简单的 count(id) 不能解决问题。
更新 2:
这是我到目前为止所做的,但显然是错误的。
SELECT count("visitors"."id"),
EXTRACT(hour from visitors.last_seen) AS hour,
EXTRACT(day from "visitors"."last_seen") AS date,
EXTRACT(month from "visitors"."last_seen") AS month
FROM "visitors"
WHERE (("visitors"."first_seen" between '2014-04-09 15:30:07.423401' and '2014-04-10 15:30:07.423476')
or ("visitors"."last_seen" between '2014-04-09 15:30:07.423401' and '2014-04-10 15:30:07.423476')
or ("visitors"."first_seen" < '2014-04-09 15:30:07.423401' and "visotors".last_seen > '2014-04-10 15:30:07.423476'))
GROUP BY month,date,hour ORDER BY month asc, date asc , hour asc
抱歉信息不足。
【问题讨论】:
-
初始数据集是什么样的?
-
架构是什么样的?到目前为止,您尝试过什么?
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请提供您尝试过的查询和示例数据。
标签: sql postgresql postgresql-9.1