【问题标题】:Hive SQL Distinct Column Syntax Error when calling multiple columns调用多列时 Hive SQL Distinct Column Syntax Error
【发布时间】:2019-06-12 14:58:56
【问题描述】:

在使用 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

我希望输出反映:

EmployeeName   | SalesID | Cases
First Last1    | 12345   |   4
First Last2    | 23455   |   2
First Last3    | 45633   |   7

【问题讨论】:

    标签: sql hadoop hive count distinct


    【解决方案1】:

    首先,您的所有查询都没有FROM 子句,因此都应该产生语法错误。

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

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

    【讨论】:

    • 真的很感激,戈登!对 SQL 有点陌生,缺少 GROUP BY 中的额外未聚合列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2013-01-28
    相关资源
    最近更新 更多