我遇到此错误:
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
答案 0 :(得分:0)
使用x y
时-相应的SELECT列表中的所有表达式必须是GROUP BY中的表达式,或者应具有AGGREGATION函数的表达式(例如MIN,MAX等)。有关GROUP BY clause的更多信息
因此,在您的情况下,两个子查询都分别在相应的GROUP BY中丢失了CHANNEL_ID和CHANNEL_DISPLAY_NAME。还是取决于您的逻辑,它们应该带有一些聚合功能。
注意:上面解释了您看到的错误。而不是这个-即使您要修复该特定错误,您的查询对我也没有多大的意义-但我希望您有一些想法:o)