今天实习工作中遇到一个问题,就是需要用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社区学到很多有用的资料,之后我也会在这里记录自己的转行学习过程,把自己的学习收获和笔记分享给大家,笔芯!~