在使用WITH子句和一系列内部联接之后,我尝试回调三列:Employees,SalesID和COUNT(DISTINCT)并遇到语法错误。
这适用于带有Hive sql的hadoop环境。使用SELECT员工,SalesID,工作量,所有适当的数据调用;但是,执行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