Session 如果我按日期细分,为什么我的总会话(使用提取月聚合)少于总会话?

Session 如果我按日期细分,为什么我的总会话(使用提取月聚合)少于总会话?,session,google-bigquery,Session,Google Bigquery,我正试图按月生成我的总会话。我试过用两种不同的方法 我正在为第一列使用date字段 我使用的是从date字段中提取的month字段,使用EXTRACT(month from date)作为month 我已尝试将以下代码用于1st1: with session1 as( select date, session_id from table where date >= '2019-05-20' AND date <= '2019-05-21') SELECT date

我正试图按月生成我的总会话。我试过用两种不同的方法

  • 我正在为第一列使用
    date
    字段
  • 我使用的是从
    date
    字段中提取的
    month
    字段,使用
    EXTRACT(month from date)作为month
  • 我已尝试将以下代码用于
    1st
    1:

    with 
    session1 as(
      select date,
      session_id
      from table
      where date >= '2019-05-20' AND date <= '2019-05-21')
    
    SELECT date_key, COUNT(DISTINCT session_id) AS sessions from session1
    GROUP BY 1
    
    对于结果,我得到如下输出:

  • 5月20日:1548届会议;5月21日:1 471届会议总计:3019
  • 五月:2905
  • 所以,有114个会话不一致,我想知道为什么


    提前谢谢。

    为了简单起见,假设连续两天只有一次会议。所以,若你们们按天计算,然后求和结果——你们们将得到2个会话,而若你们们将整个两天的不同会话计算——你们们将只得到1个会话


    希望这能向您说明原因-您在不同的日期计算了两次某些会话-也许当它们在一天结束后和第二天开始时,下面的查询会向您显示在这两个日期发生的会话ID

    select session_id, count(distinct date) as num_dates
    from table
      where date >= '2019-05-20' AND date <= '2019-05-21'
    group by 1
    having num_dates > 1
    
    选择会话id,将(不同日期)计数为num\u日期
    从桌子上
    其中日期>='2019-05-20'和日期1
    
    这可能是数据处理问题,或者您的会话定义允许跨越多天,例如,传统上,在午夜结束一个会话并开始一个新会话。其他会期方案可能不会施加这种限制

    select session_id, count(distinct date) as num_dates
    from table
      where date >= '2019-05-20' AND date <= '2019-05-21'
    group by 1
    having num_dates > 1