在使用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子句,因此所有查询都应产生语法错误。

更重要的是,SELECTGROUP BY列表应该匹配-所有未聚合的列都应在GROUP BY中:

SELECT  EmployeeName, SalesID, COUNT(DISTINCT workload) as Cases
FROM t
GROUP BY EmployeeName SalesID

09-26 18:25