其他
数据治理 | SQL中的CASE表达式有什么用?
启研学社由知名学者担任学术顾问,高校师生与企研数据科学团队联合组建,以大数据资源及相关技术助力中国学术与智库研究为宗旨的研究组织。团队当前的主要目标是挖掘经济社会大数据资源在学术和智库领域的应用价值,开展学术大数据治理研究,以及探索大数据分析技术融入中国经济社会研究的可行进路。
前言
1、转换统计方式
但是现在我们想按照浙东、浙南、浙西、浙北和浙中等区域来分组,并统计这些区域的农作物播种面积。可以利用CASE表达式将城市编号转换成地区编号进行统计,效果如下:
SELECT CASE WHEN city IN ('温州市','台州市') THEN '浙南'
WHEN city IN ('绍兴市','金华市') THEN '浙中'
WHEN city IN ('丽水市','衢州市') THEN '浙西'
WHEN '宁波市' THEN '浙东'
ELSE '浙北' END AS district,
SUM(area)
FROM MIANJI
GROUP BY CASE WHEN city IN ('温州市','台州市') THEN '浙南'
WHEN city IN ('绍兴市','金华市') THEN '浙中'
WHEN city IN ('丽水市','衢州市') THEN '浙西'
WHEN '宁波市' THEN '浙东'
ELSE '浙北' END AS district,
SUM(area);
2、在SELECT语句里进行条件分支
SELECT city,
area,
CASE WHEN area > '0' AND area <= '200' THEN '1'
ELSE '0'
END AS '小',
CASE WHEN area > '200' THEN '1'
ELSE '0'
END AS '大'
FROM MIANJI;
3、在UPDATE语句里进行条件分支
代码如下:
UPDATE MIANJI
SET area = (CASE WHEN area > '250' THEN TO_NUMBER(area)*0.9
WHEN area > '200' AND area < '250 THEN THEN TO_NUMBER(area)*1.2
ELSE TO_NUMBER(area) END);
4、在CASE表达式中使用聚合函数
如果我们想要将每个人员的主要出差地筛选出来,我们既可以用HAVING来统计,也可以采用CASE表达式。通过在CASE表达式中加入聚合函数,即可用SELECT字句进行分支,效果如下:
SELECT person_id,
CASE WHEN COUNT(*) = 1 THEN MAX(city)
THEN MAX(CASE WHEN main_city = 'Y' THEN city
ELSE NULL END)
END AS main
FROM ROUTE
GROUP BY person_id
ORDER BY person_id;
5、利用CASE表达式进行表之间数据匹配
还有一张包含城市和餐补费用的费用记录表EXPEN,表结构如下图:
我们现在想用这两张表生成下面的交叉表,以便知道各个月在各个城市的费用分布情况,我们可以利用CASE表达式来写匹配条件,效果见下图:
代码如下:
SELECT city,
CASE WHEN city IN (SELECT city FROM TRIP WHERE month = '3月')
THEN TO_NUMBER(expense)
ELSE 0 END AS mar,
CASE WHEN city IN (SELECT city FROM TRIP WHERE month = '4月')
THEN TO_NUMBER(expense)
ELSE 0 END AS apr,
CASE WHEN city IN (SELECT city FROM TRIP WHERE month = '7月')
THEN TO_NUMBER(expense)
ELSE 0 END AS jul,
CASE WHEN city IN (SELECT city FROM TRIP WHERE month = '10月')
THEN TO_NUMBER(expense)
ELSE 0 END AS oct,
CASE WHEN city IN (SELECT city FROM TRIP WHERE month = '11月')
THEN TO_NUMBER(expense)
ELSE 0 END AS nov
FROM EXPEN;
结语
点击阅读原文,进入CCAD数据库
·END·
星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
文丨瓜瓜(王倪)校对 | 威武哥(叶武威)
推荐丨青酱
欢迎扫描👇二维码添加关注