如何修复 BigQuery 中的错误“选择列表表达式 [...] 既不分组也不聚合的引用”?
Posted
技术标签:
【中文标题】如何修复 BigQuery 中的错误“选择列表表达式 [...] 既不分组也不聚合的引用”?【英文标题】:How do I fix the error "select list expression [...] references which is neither grouped nor aggregated" in BigQuery? 【发布时间】:2021-07-15 15:45:52 【问题描述】:在 BigQuery 中运行以下查询时,我收到错误“选择列表表达式 Opportunity.id 引用既不分组也不聚合”:
SELECT
Opportunity.id AS `Opportunity_Id`,
Opportunity.testing_only__c AS `Opportunity_Testing_only`,
MAX(DatedConversionRate.startdate) AS `DatedConversionRate_Start_date`,
FROM
`dataset.Opportunity` Opportunity
LEFT JOIN
`dataset.DatedConversionRate` DatedConversionRate
ON DatedConversionRate.isocode = Opportunity.currencyisocode
WHERE
DatedConversionRate.startdate < CURRENT_TIMESTAMP()
有什么问题,我该如何解决?
【问题讨论】:
【参考方案1】:从select
中删除Opportunity.id
或按其分组:
SELECT
Opportunity.id AS `Opportunity_Id`,
MAX(DatedConversionRate.startdate) AS `DatedConversionRate_Start_date`,
FROM
`dataset.Opportunity` Opportunity
LEFT JOIN
`dataset.DatedConversionRate` DatedConversionRate
ON DatedConversionRate.isocode = Opportunity.currencyisocode
WHERE
DatedConversionRate.startdate < CURRENT_TIMESTAMP()
GROUP BY Opportunity.id
【讨论】:
如果我添加 GROUP BY Opportunity.id,则错误将替换为下一个选择的类似错误:“选择列表表达式 Opportunity.testing_only__c 引用既不分组也不聚合” 也将其分组:GROUP BY Opportunity.id, Opportunity.testing_only__c
所以如果我选择了 30 个字段,我必须对所有字段进行 GROUP BY?
如果你有max()
- 那么是的。以上是关于如何修复 BigQuery 中的错误“选择列表表达式 [...] 既不分组也不聚合的引用”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BigQuery UI 中安排查询时修复“请求包含无效参数”错误
如何在加载到 Bigquery 时修复“未找到:文件 /bigstore/project/testing/filename.json”错误