【问题标题】:Bigquery - alternative for cross joinBigquery - 交叉连接的替代方案
【发布时间】:2016-08-04 22:32:05
【问题描述】:

除了我在查询中指定的列之外,我的输出中还必须包含以下列
过去 7 天内每个用户 ID 的 (nativeprodID) 计数
过去 15 天内每个用户 ID 的 (nativeProdID) 计数
过去 30 天内每个用户 ID 的 (nativeprodID) 计数

选择用户 ID、nativeprodID、nativeVersion、nativeVersionName、
MAX(StartTime) AS Last_Used_TimeStamp,
来自
[产品表]
在哪里 NativeProd ='AAA'
AND GlobalPod='AAA'
按 1、2、3、4 分组
限制 10

我正在考虑使用交叉连接,但还有其他更简单的技术吗?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    下面试试

    SELECT 
      userid, 
      nativeprodID, 
      nativeVersion, 
      nativeVersionName, 
      MAX(StartTime) AS Last_Used_TimeStamp, 
      SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -7, "DAY")), 1, 0)) AS count_last_7_days, 
      SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -15, "DAY")), 1, 0)) AS count_last_15_days, 
      SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -30, "DAY")), 1, 0)) AS count_last_30_days, 
    FROM [ProdTable] 
    WHERE NativeProd ='AAA' AND GlobalPod='AAA' 
    GROUP BY 1,2,3,4 
    LIMIT 10 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-24
      • 2014-11-19
      • 2021-04-21
      • 1970-01-01
      • 2013-06-07
      • 2015-03-01
      • 2018-06-08
      • 2015-07-08
      相关资源
      最近更新 更多