python case when用法_case when

# case when的表达式形式

## 1. 简单Case函数

```

CASE sex

WHEN '1' THEN '男'

WHEN '2' THEN '女'

ELSE '其他' END

```

## 2. Case搜索函数

```

CASE

WHEN sex = '1' THEN '男'

WHEN sex = '2' THEN '女'

ELSE '其他' END

```

# 在不同位置的用法

## 1. select case when 用法

```

计算男女占比

SELECT

SUM(

CASE

WHEN sex=1 THEN 1

ELSE 0

END

) AS boy,

SUM(

CASE

WHEN sex=2 THEN 1

ELSE 0

END

) AS girl,

ROUND(boy/(boy+girl), 3) as rate1,

ROUND(girl/(boy+girl), 3) as rate2

FROM user_profile_all;

--------------------------------------

boy girl rate1 rate2

139220493 166724237 0.455 0.545

```

## 2. where case用法

```

SELECT T2.*, T1.*

FROM T1, T2

WHERE (

CASE

WHEN T2.COMPARE_TYPE = 'A' AND T1.SOME_TYPE LIKE 'NOTHING%'

THEN 1

WHEN T2.COMPARE_TYPE != 'A' AND T1.SOME_TYPE NOT LIKE 'NOTHING%'

THEN 1

ELSE

0

END) = 1

```

## 3. group by case when用法

```

按照年龄分段统计

SELECT

CASE

WHEN yob >2001

THEN '18-'

WHEN yob <= 2001 AND yob > 1984

THEN '18-35'

WHEN yob <= 1984 AND yob != 0

THEN '35+'

ELSE

'未知'

END AS age,

COUNT() AS sum

FROM user_profile_all

GROUP BY

CASE

WHEN yob >2001

THEN '18-'

WHEN yob <= 2001 AND yob > 1984

THEN '18-35'

WHEN yob <= 1984 AND yob != 0

THEN '35+'

ELSE

'未知'

END;

--------------------------------------

age sum

18- 22479576

35+ 33509842

18-35 250019503

未知 582318559

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值