HiveSQL——借助聚合函数与case when行转列

一、条件函数

if 条件函数

if函数是最常用到的条件函数,其写法是if(x=n,a,b), x=n代表判断条件,如果x=n时,那么结果返回a ,否则返回b。

sql 复制代码
select
    if(age < 25 or age is null, '25岁以下', '25岁以上') as age_cnt,
    count(1)  as number
from table1
group by age_cnt;

case when

case when 与if的作用基本相同,也是按照条件更换列中的内容 ,区别是case when 可以对 多个条件进行转换,需要注意的是:结尾需要加end作为结束标志

sql 复制代码
case 测试表达式
when 简单表达式1 then 结果表达式1
when 简单表达式2 then 结果表达式2
.......

when 健达表达式n then 结果表达式n
[else 结果表达式 n+1]
end
sql 复制代码
--举例:
select case when age <25 or age is null then '25岁以下'
             else '25岁及以上'
             end as  age_cnt,
count(1) as  number
from table1 
group by age_cnt;

-- 举例:
select device_id,
       gender,
  case when age<20 then '20岁以下'
       when age>=20 and age<=24 then '20-24岁'
       when age>=25 then '25岁及以上'
       else '其他'
       end as age_cut
from table1;

二、运用案例

2.1 行转列

问题描述

数据准备

sql 复制代码
 create table if not exists test
    (
        col1   string comment '',
        col2   string comment '',
        col3    string comment ''
    ) comment '测试表';

    insert overwrite table test
    values ('a','g','11'),
           ('a','f','23'),
           ('a','d','9'),
           ('b','g','5'),
           ('b','f','8'),
           ('b','d','47');

数据分析

利用case when 进行行转列

sql 复制代码
select
    col1,
    case col2 when 'g' then col3 else 0 end as g,
    case col2 when 'f' then col3 else 0 end as f,
    case col2 when 'd' then col3 else 0 end as d
from test;

最后,分组求max值即可

sql 复制代码
select
    col1,
    max(case col2 when 'g' then col3 else 0 end) as g,
    max(case col2 when 'f' then col3 else 0 end) as f,
    max(case col2 when 'd' then col3 else 0 end) as d
from test
group by col1;

最终的输出结果:

小结

相关推荐
@insist1234 分钟前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师7 分钟前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记36 分钟前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
数智化精益手记局2 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Elastic 中国社区官方博客3 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog
jkyy20144 小时前
AI运动数字化:以技术重塑场景,健康有益赋能全域运动健康管理
大数据·人工智能·健康医疗
金融小师妹4 小时前
4月30日多因子共振节点:鲍威尔“收官效应”与权力结构重塑的预期重构
大数据·人工智能·重构·逻辑回归
2601_949925184 小时前
AI Agent如何重构跨境物流的决策?
大数据·人工智能·重构·ai agent·geo优化·物流科技
xiaoduo AI4 小时前
客服机器人问题解决率怎么统计?Agent系统自动判断是否解决,比人工回访准?
大数据·人工智能·机器人
小五兄弟5 小时前
YouTube 肖像检测扩展背后:短剧出海版权保护的技术实现与实战策略
大数据·人工智能