我有一个表,用于存储我运行的Web服务的用户访问/查看日志(log).它以时间戳的形式跟踪时间,尽管我发现当我汇总报告时,我只关心当天,而不关心时间.

我目前正在运行以下查询:

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

通常还有其他条件,但它们对问题并不重要.我使用的是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相关问答推荐

SQL组通过聚合到单独的列中

IS True操作员

SQL是否可以计算每年的所有日期变化?

使用SQL旋转表的列(Snowflake)

Postgres:对包含数字的字符串列表进行排序

使用占位符向SQL INSERT查询添加 case

如何将我的联接数据放入每个用户每月多行的列中?

用于从第二个表中提取具有最小最终价格值的记录的SQL查询

使用SQL数据库中的现有列派生或修改几个列

删除所有订单中可用的重复值

聚合内部的条件在哪里?

将具有嵌套 XML 的列转换为 SQL 中的表格格式?

如何根据 SQL 中的阈值标记一个集群中的所有值?

计算组内多个日期间隔go 年的累计天数

PostgreSQL如何将Unix纪元时间戳转换为日期时间并进行拼接

每组使用平均值来填补缺失值的SQL

try 将多行折叠为单个结果

雅典娜弄错了操作顺序

使用 R 遍历 SQL 查询,每次替换一个变量

SQL 查询以填充单个列中的所有值