Sql 大查询:不明确的列名

Sql 大查询:不明确的列名,sql,google-bigquery,reddit,legacy-sql,Sql,Google Bigquery,Reddit,Legacy Sql,好的,我是SQL和大查询的新手,遇到了一个不明确的列名错误。我已检查了有关堆栈溢出的其他答案,但无法找到/理解我的问题的答案。所以我得到: 错误:2.40-2.68:列名称subreddit不明确 对于这段代码(我根据另一个人对类似事情的分析改编): 谢谢你的帮助 您遇到的错误一定是暂时原因(可能是BigQuery缓存问题),因为我成功地运行了相同的查询,允许使用大结果、启用“展平结果”并指定了目标表。 然而,结果并不正确,因为列出了所有的子项。原因一定是使用了Join子句,该子句连接了两个相同

好的,我是SQL和大查询的新手,遇到了一个不明确的列名错误。我已检查了有关堆栈溢出的其他答案,但无法找到/理解我的问题的答案。所以我得到: 错误:2.40-2.68:列名称subreddit不明确

对于这段代码(我根据另一个人对类似事情的分析改编):


谢谢你的帮助

您遇到的错误一定是暂时原因(可能是BigQuery缓存问题),因为我成功地运行了相同的查询,允许使用大结果、启用“展平结果”并指定了目标表。 然而,结果并不正确,因为列出了所有的子项。原因一定是使用了Join子句,该子句连接了两个相同的表(这也可能触发了不明确的列名错误),而BigQuery必须执行交叉连接,因此会产生相乘的结果

我建议您创建一个包含目标公共数据集结果的表,如下所示:

选择subreddit、author、COUNT(1)作为cnt
FROM(表查询([fh bigquery:reddit\u注释],
'表id包含“2017”和长度(表id>=5'))
按子Reddit分组,作者cnt>5'

然后应用不同的查询,仅使用一个表(查询公共数据集得到的表)即可获得所需的结果。
建议您提出疑问,并予以答复

select语句
select t1.subreddit,t2.subreddit,SUM(1)as NumOverlaps
在输出中引入了三个字段,前两个字段将具有相同的名称,即
subreddit
,因此错误消息
列名称subreddit不明确。

要解决歧义,只需使用下面示例中的别名
选择t1.subreddit作为t1\u subreddit,t2.subreddit作为t2\u subreddit,SUM(1)作为NumOverlaps

就这么简单!
因此,假设这是您查询中的唯一问题—它现在应该可以工作了

我不认为这个查询会产生那个错误,但它告诉我的是,我直接从查询中复制了代码。它允许我运行查询,但在1分钟后停止,并给我此错误。你能提供作业id吗?我无法用该查询重现错误。作业id:reddit分析subreddits:US.bquijob_50eb6a1e_161f63505d6这是它要保存的地方我想更新:如果我为结果指定目标表,我会得到“错误:2.40-2.68:不明确的列名subreddit'。如果我没有指定目标表,它会运行大约一个小时,然后告诉我“响应太大,无法返回”。考虑设置DestialTabor或(用于遗留SQL查询)在您的作业配置中设置AuthLigerError为true。思想?
#legacySQL

    # Creating list of number of users who authored at least 10 posts in pairs of subreddits: 
    SELECT t1.subreddit, t2.subreddit, SUM(1) as NumOverlaps
    FROM (SELECT subreddit, author, COUNT(1) as cnt 
         FROM (TABLE_QUERY([fh-bigquery:reddit_comments],
     'table_id CONTAINS "2017_" AND length(table_id) >= 5'))
         GROUP BY subreddit, author HAVING cnt > 5) t1

    JOIN (SELECT subreddit, author, COUNT(1) as cnt 
         FROM(TABLE_QUERY([fh-bigquery:reddit_comments],
     'table_id CONTAINS "2017_" AND length(table_id) >= 5'))
         GROUP BY subreddit, author HAVING cnt > 5) t2

    ON t1.author=t2.author
    WHERE t1.subreddit!=t2.subreddit
    GROUP BY t1.subreddit, t2.subreddit