我正在研究Apache Zeppelin。 我有下表:
|address | metric1 | metric2 | metric3|
|--------|---------|---------|--------|
|v | 1| 1 | 200|
|w | 1| 0 | 200|
|x | 0| 1 | 200|
|y | 0| 1 | 200|
|z | 1| 0 | 1|
我想创建一个查询,显示指标值的所有可能组合,以及每个组合结束的地址数量。
像这样:
| metric1 | metric2 | metric3| count|
|---------|---------|--------|------|
| 1| 1 | 200| 1|
| 1| 0 | 200| 1|
| 0| 1 | 200| 2|
| 1| 0 | 1| 1|
我尝试了以下查询:
select metric1, metric2, metric3, count(*) as cnt
from
(select distinct metric1, metric2, metric3 from table) as t;
但会导致此错误: org.apache.hive.service.cli.HiveSQLException:编译语句时出错:SemanticException [错误10025]:表达式不在GROUP BY键'metric1'
怎么了?
答案 0 :(得分:0)
您只需要GROUP BY
:
select metric1, metric2, metric3, count(*) as cnt
from t
group by metric1, metric2, metric3;
不需要子查询。