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;

最终的输出结果:

小结

相关推荐
合米AI SOP系统28 分钟前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo28 分钟前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
xiaohaiAIgeo1 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
林墨聊AIGC2 小时前
动漫AI视频创作工具在哪找到的?2026年最新动漫AI视频平台与软件指南
大数据·人工智能·ai作画·aigc·音视频
故七月3 小时前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
数字孪生视频孪生4 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构
腾讯云大数据4 小时前
腾讯云AI Native数据平台功能发布合集【8月】
大数据·人工智能·云计算·腾讯云
小蒋观天下5 小时前
2026交通安防AI摄像头完整选型指南
大数据·人工智能
Alter12305 小时前
算力决定下限,存力决定上限:Gartner魔力象限背后的AI存储暗战
大数据·人工智能
cjy0001116 小时前
2026年9月零基础能听懂国内 FDE 讲师的课吗?
大数据·前端·人工智能·fde