【实习记录01】SQL当月营业天数问题

今天实习工作中遇到一个问题,就是需要用sql算一个“当月营业天数”的字段

1、问题背景

某公司进行业务数据分析时,需要统计“店铺日均销售额”,其定义指标口径为:

店铺日均销售额 = 销售金额 / (当月营业天数 * distinct 门店编码)

那么,其中的“当月营业天数”如何求解呢:

注释:

1)原数据中的时间格式是月份格式是2020-09-01、2021-02-01(仅代表年、月,01不代表日期)

2)不考虑节假日等因素,默认全年每天店铺都营业

2、我的SQL语句:

SELECT MONTH
	,
	(
	CASE
				
				WHEN YEAR ( MONTH ) = YEAR ( now( ) ) 
				AND MONTH ( MONTH ) = MONTH ( now( ) ) THEN
					DAY ( now( ) ) - 1 
					WHEN YEAR ( MONTH ) = YEAR ( now( ) ) 
					AND MONTH ( MONTH ) != MONTH ( now( ) ) THEN
						DATEDIFF( last_day( MONTH ), MONTH ) + 1 
						WHEN YEAR ( MONTH ) != YEAR ( now( ) ) 
						AND MONTH ( MONTH ) = MONTH ( now( ) ) THEN
							DATEDIFF( last_day( MONTH ), MONTH ) + 1 
							WHEN YEAR ( MONTH ) != YEAR ( now( ) ) 
							AND MONTH ( MONTH ) != MONTH ( now( ) ) THEN
								DATEDIFF( last_day( MONTH ), MONTH ) + 1 
							END 
							) AS '月营业天数' 
					FROM
	`test-01

3、小记录

这是我第一次在实际应用场景中独立写出来SQL语句!

虽然很长很复杂,但是还是蛮有成就感的。

希望大佬们指点简洁的方法!!!

努力转行的小菜鸟,在cdsn社区学到很多有用的资料,之后我也会在这里记录自己的转行学习过程,把自己的学习收获和笔记分享给大家,笔芯!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值