如何按timestamp列的日期部分分组统计duree_seconde的总和
实现SQL(PostgreSQL/MySQL通用,适配你的建表语句环境)
SELECT DATE(connexion) AS 统计日期, SUM(duree_seconde) AS 当日总连接时长_秒 FROM histodureeconnexion GROUP BY DATE(connexion) ORDER BY 统计日期 ASC;
逻辑说明
- 核心是用
DATE()函数提取timestamp类型connexion字段的自然日期部分,自动舍弃时分秒信息,刚好满足按自然日分组的要求 - 用聚合函数
SUM()对分组后的duree_seconde字段求和,得到当日所有记录的连接时长总和 - 末尾的
ORDER BY为可选配置,作用是让结果按日期升序排列,匹配你给出的预期结果的展示逻辑
如果需要将总秒数转换为时分秒的可读格式,PostgreSQL环境可以使用如下扩展语句:
SELECT DATE(connexion) AS 统计日期, SUM(duree_seconde) AS 当日总连接时长_秒, TO_CHAR((SUM(duree_seconde) || ' second')::interval, 'HH24小时MI分SS秒') AS 当日总连接时长 FROM histodureeconnexion GROUP BY DATE(connexion) ORDER BY 统计日期 ASC;
内容的提问来源于stack exchange,提问作者pheromix
相关产品推荐
相关产品推荐

