Sql AnalysisException:选择不是由聚合输出生成的列表表达式(GROUPBY子句中缺少?)

Sql AnalysisException:选择不是由聚合输出生成的列表表达式(GROUPBY子句中缺少?),sql,cloudera,impala,Sql,Cloudera,Impala,我有黑斑羚的疑问: select id,zip,income from zipcode_incomes group by income having income>avg(income) 但我得到了一个错误,AnalysisException:选择列表表达式不是由聚合输出生成的(GROUPBY子句中缺少?)。我犯了什么错误?在选择中不能有非聚合列。大概你想要这样的东西: select id, zip, income from (select zi.*, avg(zi.income) ov

我有黑斑羚的疑问:

select id,zip,income
from zipcode_incomes
group by income
having income>avg(income)

但我得到了一个错误,AnalysisException:选择列表表达式不是由聚合输出生成的(GROUPBY子句中缺少?)。我犯了什么错误?

选择中不能有非聚合列。大概你想要这样的东西:

select id, zip, income
from (select zi.*, avg(zi.income) over () as avg_income
      from zipcode_incomes zi
     ) zi
where income > avg_income;

这将返回收入高于总体平均水平的邮政编码。

您想做什么。。添加示例数据和预期结果。我确信仅仅修复错误并不能解决您的问题