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

如何用SQL查询同一日期下含多个EventA的AggregateId

问题分析

你写的SQL存在以下错误:

  • 字段名匹配错误:原表不存在CreditId字段,对应维度字段是AggregateId,同时SQL中混用了不存在的别名t,GROUP BY字段也对应错误
  • 逻辑冗余:不需要做自连接,单表分组统计即可满足需求
  • 分组维度缺失:需要同时按AggregateId和TransactionDate两个维度分组,才能统计单ID单日的EventA触发次数
正确实现SQL
SELECT DISTINCT AggregateId
FROM Table1
WHERE EventName = 'EventA'
GROUP BY AggregateId, TransactionDate
HAVING COUNT(*) >= 2

逻辑说明:

  • 先过滤所有EventName = 'EventA'的记录,减少后续计算量
  • 按AggregateId+TransactionDate分组,统计每个ID在对应日期下的EventA记录数
  • 用HAVING筛选出记录数≥2的分组
  • 最后用DISTINCT去重,避免同一个ID在多个日期满足条件时重复返回

如果需要保留全量数据统计的写法,也可以使用如下实现:

SELECT DISTINCT AggregateId
FROM Table1
GROUP BY AggregateId, TransactionDate
HAVING COUNT(CASE WHEN EventName = 'EventA' THEN 1 END) >= 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:48:05