【问题标题】:BIGQUERY SELECT list expression references column CHANNEL_ID which is neither grouped nor aggregated at [10:13]BIGQUERY SELECT 列表表达式引用在 [10:13] 处既不分组也不聚合的 CHANNEL_ID 列
【发布时间】:2019-02-20 22:20:34
【问题描述】:

我正面临这个错误:

BIGQUERY SELECT 列表表达式引用列 CHANNEL_ID,它是 在 [10:13] 时既不分组也不聚合

不知道是什么原因造成的,谁能给我解释一下?

这是我的代码:

SELECT 
    t0.CHANNEL_ID,
    t1.CHANNEL_DISPLAY_NAME
FROM
    (SELECT
         TIMESTAMP_TRUNC(_PARTITIONTIME, MONTH) as `DATE`,
         CHANNEL_ID
     FROM 
         `pops-204909.yt_kids.p_content_owner_basic_a3_yt_kids`   
     WHERE 
         DATE(_PARTITIONTIME) between "2017-08-01" and "2017-08-31"
     GROUP BY 
         `DATE`) t0
LEFT JOIN
    (SELECT
         TIMESTAMP_TRUNC(_PARTITIONTIME, MONTH) as `DATE`,
         CHANNEL_DISPLAY_NAME
     FROM 
         `pops-204909.yt_kids.p_content_owner_ad_revenue_raw_a1_yt_kids`
     WHERE 
         DATE(_PARTITIONTIME) between "2017-08-01" and "2017-08-31"
     GROUP BY 
         `DATE`) t1 ON t0.DATE = t1.DATE

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    当您使用GROUP BY 时 - 相应 SELECT 列表中的所有表达式必须是 GROUP BY 中的表达式或应该具有 AGGREGATION 函数的表达式 - 如 MIN、MAX 等。查看更多关于 GROUP BY clause

    因此,在您的情况下,两个子查询在各自的 GROUP BY 中分别缺少 CHANNEL_IDCHANNEL_DISPLAY_NAME。或者取决于您的逻辑,它们应该带有一些聚合功能。

    注意:上面解释了您看到的错误。而不是这个-即使您要修复该特定错误,您的查询对我也没有多大意义-但我希望您有一些想法:o)

    【讨论】:

    • 对!我删除了GROUP BY行然后我查询成功!关于你的笔记,你的意思是什么?为什么没有意义?
    • 我的意思是,根据你的例子——按日期加入对我来说没有多大意义,但正如我所说——你可能有一些想法
    猜你喜欢
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多