前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你的贷款今天逾期了吗?

你的贷款今天逾期了吗?

作者头像
猴子数据分析
发布2021-11-10 15:57:41
4880
发布2021-11-10 15:57:41
举报
文章被收录于专栏:猴子数据分析

【题目】

一家金融贷款公司,需要了解用户贷款逾期未还的情况。该公司数据库中有一张用户"贷款逾期天数"表。

用户ID

逾期天数

1

45

2

85

3

3

4

9

5

38

6

47

7

117

8

53

9

20

10

36

……

……

当逾期天数=0时,记为M0,

逾期天数在[1,30]区间时,记为M1,

逾期天数在[31,60]区间时, 记为M2,

逾期天数在[61,90]区间时,记为M3,

其他更高的逾期天数记为M4+,

现在需要在数据库中分析出每种逾期时段(M0、M1、M2、M3、M4+)的订单个数,如果是你,会如何分析呢?

【解题思路】

1.多条件判断

每个逾期时段(M0、M1、M2、M3、M4+)表示一种条件,这是典型的多条件判断业务问题。

遇到这种业务问题,要想到《猴子 从零学会SQL》里讲过的用case语句来解决多条件判断问题。

代码语言:javascript
复制
select
(case when 逾期天数=0 then 1 else 0 end) as "M0",
(case when 逾期天数 between 1 and 30 then 1 else 0 end) as "M1",
(case when 逾期天数 between 31 and 60 then 1 else 0 end) as "M2",
(case when 逾期天数 between 61 and 90 then 1 else 0 end) as "M3",
(case when 逾期天数>90 then 1 else 0 end) as "M4+"
from 逾期天数表;

2.每种逾期时段订单数

上面对满足逾期时间段的数据标记为“1”,不满足的标记为0 。例如,逾期时段M0(逾期天数=0)

代码语言:javascript
复制
(case when 逾期天数=0 then 1 else 0 end) as "M0"

现在要得到每种逾期时段订单数,那么只需要对每逾期时段里标记为1的值进行统计求和就可以,也就是在上一步SQL里加上求和函数sum。

代码语言:javascript
复制
select
sum(case when 逾期天数=0 then 1 else 0 end) as "M0",
sum(case when 逾期天数 between 1 and 30 then 1 else 0 end) as "M1",
sum(case when 逾期天数 between 31 and 60 then 1 else 0 end) as "M2",
sum(case when 逾期天数 between 61 and 90 then 1 else 0 end) as "M3",
sum(case when 逾期天数>90 then 1 else 0 end) as "M4+"
from 逾期天数表;

查询结果:

M0

M1

M2

M3

M4+

1

16

12

12

10

【本题考点】

当遇到多条件判断的业务问题,要想到用case语句来解决。

推荐:如何从零学会SQL?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猴子数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档