google-bigquery - BIGQUERY SELECT 列表表达式引用了 CHANNEL_ID 列,该列既未在 [10 :13] 处分组也未聚合

标签 google-bigquery

我正面临这个错误:

BIGQUERY SELECT list expression references column CHANNEL_ID which is neither grouped nor aggregated at [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

最佳答案

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

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

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

关于google-bigquery - BIGQUERY SELECT 列表表达式引用了 CHANNEL_ID 列,该列既未在 [10 :13] 处分组也未聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52360162/

相关文章:

sql - BigQuery - 连接忽略 NULL

sql - bigquery 从日期中减去 3 个工作日

sql - DATE_FROM_UNIX_DATE 和 UNIX_DATE 在 Google BigQuery 上均返回错误

google-bigquery - 通过 SQL 查询获取表特定成本

google-bigquery - 在 BigQuery API 中提取作业 - 未找到作业配置对象

google-bigquery - 寻找用于 BigQuery 分析的示例 doubleclick 广告服务日志

json - BigQuery json 导出使用什么格式?

sql - 如何通过在连接子句中使用子字符串函数在 Big Query 中执行两个表之间的连接

google-bigquery - 所有 bq 作业的摘要

sql - BigQuery 标准 SQL 中具有不同架构的联合表