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

如何使用SQL统计同一日期同时出现1和0事件的客户行为发生次数

解决方案

核心思路是按id(客户ID)和date(事件日期)分组,判断每组内是否同时存在event=1和event=0两类事件,对满足条件的组计数即可。

SELECT COUNT(*) AS total_valid_count
FROM (
    SELECT id, date
    FROM 你的表名
    -- 日期范围过滤条件,不需要统计指定范围可删除
    WHERE date >= 'YYYY-MM-DD' AND date <= 'YYYY-MM-DD'
    GROUP BY id, date
    -- 校验同客户同日期同时存在两类事件
    HAVING COUNT(DISTINCT event) = 2
) AS valid_records;

结果说明

你提供的示例数据运行该SQL后返回结果为1,仅ID为1的客户在2021/10/1满足条件。

扩展用法

如果需要按日期维度统计每天符合条件的客户数量,可修改为以下写法:

SELECT date, COUNT(*) AS daily_valid_customer_count
FROM (
    SELECT id, date
    FROM 你的表名
    WHERE date >= 'YYYY-MM-DD' AND date <= 'YYYY-MM-DD'
    GROUP BY id, date
    HAVING COUNT(DISTINCT event) = 2
) AS valid_records
GROUP BY date
ORDER BY date;

如果你的event字段仅存在0、1两个取值,可将HAVING COUNT(DISTINCT event) = 2替换为SUM(CASE WHEN event = 1 THEN 1 ELSE 0 END) >= 1 AND SUM(CASE WHEN event = 0 THEN 1 ELSE 0 END) >= 1,执行效率更高。

内容的提问来源于stack exchange,提问作者Nick C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:54:03