You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite中按年月统计Executed、Scheduled、Cancelled的预订数量?

SQLite按年月统计不同状态预订数量的解决方案

核心思路

借助SQLite的strftime()函数提取starttime的年月信息,结合条件聚合实现分状态统计,最后按年月分组排序得到结果。

示例SQL语句

假设你的预订表名为bookings,执行以下查询即可:

SELECT
    strftime('%Y-%m', starttime) AS year_month,
    COUNT(CASE WHEN status = 'Executed' THEN 1 END) AS executed_count,
    COUNT(CASE WHEN status = 'Scheduled' THEN 1 END) AS scheduled_count,
    COUNT(CASE WHEN status = 'Cancelled' THEN 1 END) AS cancelled_count,
    COUNT(*) AS total_count -- 可选:统计当月总预订量
FROM bookings
WHERE starttime BETWEEN '2020-01-01' AND '2022-12-31'
GROUP BY year_month
ORDER BY year_month;

语句说明

  • strftime('%Y-%m', starttime):把starttime转换为YYYY-MM格式的年月字符串,作为分组的核心依据。
  • COUNT(CASE WHEN ... THEN 1 END):通过条件判断筛选对应状态的记录,不符合条件的返回NULL,COUNT()会自动忽略NULL值,实现精准统计。
  • WHERE子句:严格限定时间范围在2020-2022年,过滤无关数据。
  • GROUP BY + ORDER BY:按年月分组后排序,保证结果按时间顺序展示。

注意事项

  • 如果你的表名不是bookings,请替换为实际表名。
  • 确保status字段的取值与SQL中的字符串完全匹配(SQLite默认大小写敏感),若存在大小写不一致的情况,可改用LOWER(status)统一转换后判断,例如CASE WHEN LOWER(status) = 'executed' THEN 1 END。

内容的提问来源于stack exchange,提问作者RG Rauniyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:45:47