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

如何编写SQL查询统计EventHistory表不同事件类型的发生次数?

SQL查询解法

你可以使用条件聚合实现需求,该写法兼容MySQL、PostgreSQL、SQL Server等所有主流关系型数据库,具体查询语句如下:

SELECT
    A,
    B,
    -- 统计schedule和manual_schedule两类事件的总数量
    SUM(CASE WHEN eventType IN ('schedule', 'manual_schedule') THEN 1 ELSE 0 END) AS schedule_total_cnt,
    -- 统计cancel类型事件的数量
    SUM(CASE WHEN eventType = 'cancel' THEN 1 ELSE 0 END) AS cancel_cnt
FROM EventHistory
-- 按复合主键分组
GROUP BY A, B;

补充说明

如果你的数据库支持IF函数(比如MySQL),也可以使用更简洁的写法:

SELECT
    A,
    B,
    SUM(IF(eventType IN ('schedule', 'manual_schedule'), 1, 0)) AS schedule_total_cnt,
    SUM(IF(eventType = 'cancel', 1, 0)) AS cancel_cnt
FROM EventHistory
GROUP BY A, B;

对应你提供的示例数据,执行上述SQL后输出结果如下:

ABschedule_total_cntcancel_cnt
249106195690110121
249128195690400131
2492401956932501122

内容的提问来源于stack exchange,提问作者shreyak jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:03