HiveQL GROUP BY和HAVING子句

HiveQL GROUP BY和HAVING子句

Hive查询语言提供了GROUP BY和HAVING子句,这些子句类似于SQL中的功能。在下面的表格记录上,我们将执行这些子句:

HiveQL GROUP BY和HAVING子句

GROUP BY子句

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

在Hive中使用GROUP BY子句的示例

让我们通过一个示例来按部门对员工的工资进行求和。

  • 选择要创建表的数据库。
hive> use hiveql;

HiveQL GROUP BY和HAVING子句

  • 现在,使用以下命令创建一个表:
hive> create table emp (Id int, Name string , Salary float, Department string)  
row format delimited  
fields terminated by ',' ; 

HiveQL GROUP BY和HAVING子句

  • 将数据加载到表中。
hive> load data local inpath '/home/codegyani/hive/emp_data' into table emp;

HiveQL GROUP BY和HAVING子句

  • 现在,使用以下命令按部门获取员工薪水总和:
hive> select department, sum(salary) from emp group by department;

HiveQL GROUP BY和HAVING子句

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

有HAVING子句

HQL HAVING子句GROUP BY 子句一起使用。它的目的是对由GROUP BY子句产生的数据组应用约束条件。因此,它总是返回满足条件的数据 TRUE

在Hive中使用Having子句的示例

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

  • 使用以下命令获取基于部门的员工工资总和,总和大于等于35000:
hive> select department, sum(salary) from emp group by department having sum(salary)>=35000;

HiveQL GROUP BY和HAVING子句

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程