题解 | #快递量区间分布#

快递量区间分布

https://www.nowcoder.com/practice/304ba9b3af7b4512a40537990ac9a866

此题,考点就是聚合函数+判断函数,之前2道题都是直接出了要判断的列,这题是要由你自己求出来.
1.先求出,每位用户的单量 2.在求出每个用户的单量属于哪个范围的 3.在求哪个范围内的用户个数

方法一:虚拟表+聚合函数+判断求出(if)
with tiaojian as (
select 
客户ID,
count(distinct 运单号) as 订单数
from 快递揽收表
where 
date_format(创建日期,"%Y%m")=202005
group by 客户ID
)


select 
t.单量,
count(客户ID) as 客户数
from(
select 
客户ID,
if(订单数 between 0 and 5 ,"0-5",if(订单数 between 6 and 10,"6-10",if(订单数 between 11 and 20,"11-20","20以上"))) as 单量
from tiaojian
) as t
group by t.单量
order by t.单量


方法二:虚拟表+聚合函数+判断求出(case when then end)
with tiaojian as (
select 
客户ID,
count(distinct 运单号) as 订单数
from 快递揽收表
where 
date_format(创建日期,"%Y%m")=202005
group by 客户ID
)


select
t.单量,
count( 客户ID) as "客户数"
from(
select 
客户ID,
case when 订单数 between 0 and 5 then "0-5"
     when 订单数 between 6 and 10 then "6-10"
     when 订单数 between 11 and 20 then "11-20"
     when 订单数>20 then "20以上" end 单量
from tiaojian
) as t 
group by t.单量
order by t.单量

全部评论

相关推荐

08-29 17:17
已编辑
门头沟学院
嗨害嗨我来了:张总:你们这些年轻人,这不是把我的爱好暴露了吗?
工作时那些社死瞬间
点赞 评论 收藏
分享
迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务