【sqlintern】实战模拟SQL练习

1.数分SQL必知必会

1.1 字符串与逻辑运算执行顺序

题目
假设你是美团用户运营组的同学,计划在9月份给用户预热推送’十一旅游优惠团券’。
请找出2021年8月,在休闲娱乐或餐饮分类下,单笔消费金额超过(含)900元的用户共有多少人?
在这里插入图片描述
思路
计数:用户数

条件过滤:
(1)时间:2021年8月
(2)类型:休闲娱乐或餐饮
(3)单笔消费金额超过(含)900元

tips:
in ( <集合数据> )
name in (‘France’, ‘Germany’, ‘Italy’)
等同于
name =‘France’ or name =‘Germany’ or name =‘Italy’

答案

select count(distinct usr_id) 
from trx_rcd
where 
substr(trx_time,1,7)='2021-08'
and mch_typ in('休闲娱乐' ,'餐饮' )
and trx_amt>=900

1.2 星期函数的运用

题目
现有一张用户登录表,请问DAU高峰和低谷分别是周几?
在这里插入图片描述
思路
DAU是指当日活跃用户数
聚合计数:
计算数据库所有日期内,周一到周日的登录人数

答案

select 
	weekday(load_dt) as '星期'
	, count(usr_id) as 'DAU'
from 
	td_load_rcd 
group by weekday(load_dt)
order by 'DAU' desc

1.3 剔重的场景

题目
现有一张用户登录表,请统计MAU(月活跃用户数)趋势。以下说法错误的是:
在这里插入图片描述
思路
与上一题类似
且MAU(月活跃用户数)需要剔重

答案

select 
	substr(load_dt,1,7) as '月份'
	, count(distinct usr_id) 
from 
	td_load_rcd 
group by substr(load_dt,1,7)

2.条件过滤

2.1 多条件判断

题目
请找出2021年国庆或2022年元旦假期期间,单笔交易金额超过10000元的所有客户。
在这里插入图片描述
思路
条件1:时间上在2021年国庆2022年元旦期间(日期格式可以直接判断)
条件2:金额上,单笔交易金额超过10000元

答案

select * 
from trx_rcd 
where 
(trx_time between '2022-01-01' and '2022-01-03' or (trx_time between '2021-10-01' and '2021-10-07'))
and trx_amt>10000

3.聚合函数与数学运算

3.1

题目
惠州金爵大酒店在哪一天迎来了首位客人
在这里插入图片描述
思路

答案

select min(trx_time)
from trx_rcd 
where mch_nm='惠州金爵大酒店'

拓展题目
惠州金爵大酒店除了第一天,后面有客人的日期

**题目**
select *
from
trx_rcd
where trx_time>(select min(trx_time)
from trx_rcd 
where mch_nm='惠州金爵大酒店') 
and mch_nm='惠州金爵大酒店'
order by trx_time
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值