我有一个表,用于存储我运行的网络服务的用户访问/查看日志。它将时间作为时间戳进行跟踪,尽管我发现在进行汇总报告时我只关心日期,而不关心时间。
我目前正在运行以下查询:
SELECT
user_logs.timestamp
FROM
user_logs
WHERE
user_logs.timestamp >= %(timestamp_1)s
AND user_logs.timestamp <= %(timestamp_2)s
ORDER BY
user_logs.timestamp
通常还有其他 where 条件,但它们与问题无关。我正在使用 Postgres,但我假设使用的任何功能都适用于其他语言。
我将结果提取到一个 Python 脚本中,该脚本计算每个日期的观看次数,但如果数据库可以对我进行分组和计数,这对我来说会更有意义。
我如何剥离它以便它按天分组并忽略时间?
最佳答案
SELECT date_trunc('day', user_logs.timestamp) "day", count(*) views
FROM user_logs
WHERE user_logs.timestamp >= %(timestamp_1)s
AND user_logs.timestamp <= %(timestamp_2)s
group by 1
ORDER BY 1
关于sql - 按天而不是时间对时间戳进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14770829/