hive sum(case when)聚合函数
时间: 2023-06-29 11:16:02 浏览: 330
在Hive中,可以使用SUM函数结合CASE WHEN语句进行条件聚合。具体语法如下所示:
```
SELECT
SUM(CASE WHEN condition1 THEN value1 ELSE 0 END) AS result1,
SUM(CASE WHEN condition2 THEN value2 ELSE 0 END) AS result2,
...
FROM table_name
WHERE condition;
```
其中,condition1、condition2等表示条件表达式,value1、value2等表示需要聚合的数值列。在SUM函数中,当满足条件时将数值列相加,否则将值设为0,最终返回聚合结果。需要注意的是,CASE WHEN语句中的ELSE 0是可选的,如果不指定则默认为NULL。
举个例子,假设有一张学生成绩表scores,包含学生ID(student_id)、科目(subject)和成绩(score)三个字段,现在要统计每个学生的数学和英语成绩之和,可以使用如下SQL语句:
```
SELECT
student_id,
SUM(CASE WHEN subject = 'math' THEN score ELSE 0 END) AS math_sum,
SUM(CASE WHEN subject = 'english' THEN score ELSE 0 END) AS english_sum
FROM scores
GROUP BY student_id;
```
这样就可以得到每个学生的数学和英语成绩之和了。
阅读全文