如何无参数按日期倒序分组统计各session_kind时序数据量?
解决方案:按日期分组统计各session_kind的数量
没问题,我来帮你搞定这个分组统计需求!要实现你要的输出格式,核心是按日期聚合+针对每个session_kind单独计数,用SQL的条件聚合就能轻松实现。
直接上可用的无参数SQL语句:
SELECT COUNT(CASE WHEN session_kind = 0 THEN 1 END) AS "0", COUNT(CASE WHEN session_kind = 1 THEN 1 END) AS "1", COUNT(CASE WHEN session_kind = 2 THEN 1 END) AS "2", DATE(ts) AS ts FROM stats GROUP BY DATE(ts) ORDER BY ts DESC;
语句细节解释:
DATE(ts):把ts字段的时间戳转换成YYYY-MM-DD的纯日期格式,这样就能精准按天分组。从你用CURRENT_TIMESTAMP和AUTOINCREMENT来看,应该是SQLite环境,这个函数完全适用。- 条件聚合
COUNT(CASE ...):- 当
session_kind等于目标值时返回1,否则返回NULL;COUNT函数会自动忽略NULL,最终结果就是当天该session_kind的记录总数。 - 三个CASE分支分别对应你要统计的0、1、2三种类型。
- 当
GROUP BY DATE(ts):确保同一天的所有记录被聚合到同一行。ORDER BY ts DESC:让结果按日期从最新到最旧排序,正好匹配你示例里的输出顺序。
执行这条语句后,输出就会和你给出的示例格式完全一致,每个日期行对应三个kind的计数,最后是日期,且最新日期排在最顶部。
内容的提问来源于stack exchange,提问作者sanchop22
相关产品推荐
相关产品推荐

