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

SQL Pivot分组异常:如何按GA会话ID输出单行数据?

修复SQL Pivot后会话ID多行问题

问题根源

当前子查询src中包含了projectsite、geo_country、geo_region、geo_city等额外维度字段,同一个ga_session_id可能因为这些字段的不同值生成多条记录。Pivot操作会基于这些字段的组合进行转换,最终导致同一个会话ID出现多行结果。

修复方案

移除子查询中不需要的维度字段,并按ga_session_id、event_date、traffic_source_medium_2分组,确保每个会话ID与媒介类型的组合仅保留一行数据,再执行Pivot操作:

select event_date
,ga_session_id
,organic
,none
from (
    select 
        sd.ga_session_id
        ,sd.event_date
        ,case when traffic_source_medium='(none)' then 'none' else traffic_source_medium end as traffic_source_medium_2
    from google_analytics.ga_sessiondetails_distinct sd 
    where sd.ga_session_id in ('1678364512' ,'1677708135')
    group by sd.ga_session_id, sd.event_date, traffic_source_medium_2
) as src 
pivot (
    count(traffic_source_medium_2)
    for traffic_source_medium_2 in ('organic','none')
) as Pvt

补充说明

如果确实需要保留projectsite、地理位置等字段,需确保同一个ga_session_id对应的这些字段值完全一致。此时可将这些字段加入主查询和子查询的group by列表中,但如果同一会话内这些字段存在不同值,仍会产生多行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:59:59