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

SQL实现每日不同Goal Name事件发生次数统计

实现Goal事件的日频次统计

你的现有SQL是把每个事件的具体时间戳和处理后的Goal名称关联起来,但要实现按日统计每个Goal的发生次数,需要对时间戳做日期截断,再按日期和Goal名称分组统计。

修改后的SQL(分数据库类型)

1. MySQL/MariaDB

select
    gn.Goal_Name_,
    DATE(gn.EventTimestamp) as EventDate,
    COUNT(*) as DailyCount
from(
    select 
        CASE 
            when substr(GoalName,1,3)='MSD' then 'MSD' 
            when substr(GoalName,1,5)='https' then 'https' 
            else goalname 
        END as Goal_Name_,
        EventTimestamp
    from CG.Goal as goal
)gn
group by gn.Goal_Name_, DATE(gn.EventTimestamp)
order by EventDate, Goal_Name_

2. PostgreSQL

select
    gn.Goal_Name_,
    DATE_TRUNC('day', gn.EventTimestamp)::date as EventDate,
    COUNT(*) as DailyCount
from(
    select 
        CASE 
            when substr(GoalName,1,3)='MSD' then 'MSD' 
            when substr(GoalName,1,5)='https' then 'https' 
            else goalname 
        END as Goal_Name_,
        EventTimestamp
    from CG.Goal as goal
)gn
group by gn.Goal_Name_, DATE_TRUNC('day', gn.EventTimestamp)::date
order by EventDate, Goal_Name_

3. SQL Server

select
    gn.Goal_Name_,
    CAST(gn.EventTimestamp AS DATE) as EventDate,
    COUNT(*) as DailyCount
from(
    select 
        CASE 
            when LEFT(GoalName,3)='MSD' then 'MSD' 
            when LEFT(GoalName,5)='https' then 'https' 
            else goalname 
        END as Goal_Name_,
        EventTimestamp
    from CG.Goal as goal
)gn
group by gn.Goal_Name_, CAST(gn.EventTimestamp AS DATE)
order by EventDate, Goal_Name_

4. Oracle

select
    gn.Goal_Name_,
    TRUNC(gn.EventTimestamp) as EventDate,
    COUNT(*) as DailyCount
from(
    select 
        CASE 
            when SUBSTR(GoalName,1,3)='MSD' then 'MSD' 
            when SUBSTR(GoalName,1,5)='https' then 'https' 
            else goalname 
        END as Goal_Name_,
        EventTimestamp
    from CG.Goal as goal
)gn
group by gn.Goal_Name_, TRUNC(gn.EventTimestamp)
order by EventDate, Goal_Name_

关键修改点

  • 把原始的EventTimestamp转换成日期格式(去掉时分秒),不同数据库用对应的函数处理
  • 分组字段改为Goal_Name_和转换后的日期,不再用原始时间戳
  • 用COUNT(*)统计每个分组内的事件数量,即当日该Goal的发生次数

预期输出结果

Goal_Name_EventDateDailyCount
MSD2021-03-055
Login2022-01-2312
Logout2022-01-188
etcetcetc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:40:41