HiveQL - GROUP BY 和 HAVING 子句

17 Mar 2025 | 阅读 2 分钟

Hive 查询语言提供了 GROUP BY 和 HAVING 子句,它们的功能与 SQL 中的类似。在这里,我们将对下表中的记录执行这些子句

HiveQL - GROUP BY and HAVING Clause

GROUP BY 子句

HQL Group By 子句用于根据一个或多个列对多个记录中的数据进行分组。它通常与聚合函数(如 SUM、COUNT、MIN、MAX 和 AVG)一起使用,以便对每个组执行聚合。

Hive 中 GROUP BY 子句的示例

让我们看一个根据部门汇总员工工资的例子。

  • 选择我们要创建表的数据库。

HiveQL - GROUP BY and HAVING Clause
  • 现在,使用以下命令创建一个表

HiveQL - GROUP BY and HAVING Clause
  • 将数据加载到表中。

HiveQL - GROUP BY and HAVING Clause
  • 现在,使用以下命令按部门获取员工工资的总和

HiveQL - GROUP BY and HAVING Clause
HiveQL - GROUP BY and HAVING Clause
HiveQL - GROUP BY and HAVING Clause

在这里,我们得到了期望的输出。

HAVING 子句

HQL HAVING 子句GROUP BY 子句一起使用。其目的是对 GROUP BY 子句生成的数据组应用约束。因此,它始终返回条件为 TRUE 的数据。

Hive 中 Having 子句的示例

在此示例中,我们根据部门获取员工工资的总和,并使用 HAVING 子句对该总和应用所需的约束。

  • 让我们使用以下命令获取部门的员工工资总和,其中总和 >= 35000

HiveQL - GROUP BY and HAVING Clause
HiveQL - GROUP BY and HAVING Clause
HiveQL - GROUP BY and HAVING Clause

在这里,我们得到了期望的输出。