在使用 WITH 子句和一系列内部联接后,我试图回调三列:Employees、SalesID 和 COUNT(DISTINCT),但遇到语法错误。
这是针对带有 hive sql 的 hadoop 环境。使用 SELECT Employees、SalesID、Workload,所有适当的数据召回;但是,执行 COUNT(DISTINCT) 时会出现语法问题。
成功的结果:
SELECT SalesID
, COUNT(DISTINCT workload) AS Cases
GROUP BY SalesID
同样成功的结果:
SELECT EmployeeName
, SalesID
, Workload AS Cases
ORDER BY SalesID
语法错误:
SELECT EmployeeName
, SalesID
, COUNT(DISTINCT workload) Cases
GROUP BY SalesID
我希望输出反射(reflect):
EmployeeName | SalesID | Cases
First Last1 | 12345 | 4
First Last2 | 23455 | 2
First Last3 | 45633 | 7
最佳答案
首先,您的查询都没有 FROM
子句,因此所有查询都应该产生语法错误。
更重要的是,SELECT
和 GROUP BY
列表应该匹配——所有未聚合的列都应该在 GROUP BY
中:
SELECT EmployeeName, SalesID, COUNT(DISTINCT workload) as Cases
FROM t
GROUP BY EmployeeName SalesID
关于sql - 调用多列时 Hive SQL 不同列语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565168/