📅  最后修改于: 2020-12-03 03:53:33             🧑  作者: Mango
Hive查询语言提供了GROUP BY和HAVING子句,可促进与SQL中类似的功能。在这里,我们将在下表的记录上执行这些子句:
HQL Group By子句用于根据一个或多个列对来自多个记录的数据进行分组。它通常与聚合函数(例如SUM,COUNT,MIN,MAX和AVG)结合使用,以对每个组执行聚合。
让我们看一个示例,根据部门对员工的薪水进行汇总。
hive> use hiveql;
hive> create table emp (Id int, Name string , Salary float, Department string)
row format delimited
fields terminated by ',' ;
hive> load data local inpath '/home/codegyani/hive/emp_data' into table emp;
hive> select department, sum(salary) from emp group by department;
在这里,我们得到了期望的输出。
HQL HAVING子句与GROUP BY子句一起使用。其目的是对GROUP BY子句产生的数据组施加约束。因此,它总是返回条件为TRUE的数据。
在此示例中,我们根据部门获取员工薪水的总和,并使用HAVING子句在该总和上应用所需的约束。
hive> select department, sum(salary) from emp group by department having sum(salary)>=35000;
在这里,我们得到了期望的输出。