SQLite存储纪元毫秒时间如何按天分组统计value最大总和
这个需求完全可以通过SQLite原生支持的日期函数实现,具体实现逻辑和代码如下:
SQLite内置的DATE函数支持处理Unix秒级时间戳,你存储的是毫秒级时间戳,只需要先除以1000转换为秒级,再通过DATE函数转为YYYY-MM-DD格式的日期字符串,即可按天维度分组统计。
场景1:查询所有天的价值总和,按总和倒序排列
SELECT DATE(date / 1000, 'unixepoch') AS day, SUM(value) AS sumValue FROM 你的实际表名 GROUP BY day ORDER BY sumValue DESC;
场景2:直接获取所有天中最大的价值总和
SELECT MAX(sumValue) AS max_day_sum FROM ( SELECT SUM(value) AS sumValue FROM 你的实际表名 GROUP BY DATE(date / 1000, 'unixepoch') ) AS daily_sum;
场景3:同时拿到最大总和对应的日期
SELECT DATE(date / 1000, 'unixepoch') AS day, SUM(value) AS sumValue FROM 你的实际表名 GROUP BY day ORDER BY sumValue DESC LIMIT 1;
补充说明
如果需要按指定时区计算日期,可在DATE函数中添加时区偏移修饰符,例如东八区(北京时间)可调整为:DATE(date / 1000, 'unixepoch', '+8 hours')
内容的提问来源于stack exchange,提问作者progNewbie
相关产品推荐
相关产品推荐

