LeetCode(数据库)- 按年度列出销售总额

简介: LeetCode(数据库)- 按年度列出销售总额

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

WITHt0AS(SELECT*, DATE_FORMAT(period_start, '%Y') fromY, DATE_FORMAT(period_end, '%Y') toYFROMSalesWHEREDATE_FORMAT(period_start, '%Y') =DATE_FORMAT(period_end, '%Y')),
t1AS(SELECT*, DATE_FORMAT(period_start, '%Y') fromY, DATE_FORMAT(period_end, '%Y') toYFROMSalesWHEREDATE_FORMAT(period_start, '%Y') -DATE_FORMAT(period_end, '%Y') =-1),
t2AS(SELECT*, DATE_FORMAT(period_start, '%Y') fromY, DATE_FORMAT(period_end, '%Y') toYFROMSalesWHEREDATE_FORMAT(period_start, '%Y') -DATE_FORMAT(period_end, '%Y') =-2),
t3AS(SELECTproduct_id, fromYreport_year, (DATEDIFF(period_end, period_start) +1) *average_daily_salestotal_amountFROMt0UNIONALLSELECTproduct_id, fromY, (DATEDIFF(CONCAT(fromY, '-12-31'), period_start) +1) *average_daily_salestotal_amountFROMt1UNIONALLSELECTproduct_id, toY, (DATEDIFF(period_end, CONCAT(toY, '-01-01')) +1) *average_daily_salestotal_amountFROMt1UNIONALLSELECTproduct_id, fromY, (DATEDIFF(CONCAT(fromY, '-12-31'), period_start) +1) *average_daily_salestotal_amountFROMt2UNIONALLSELECTproduct_id, fromY+1, 365*average_daily_salestotal_amountFROMt2UNIONALLSELECTproduct_id, toY, (DATEDIFF(period_end, CONCAT(toY, '-01-01')) +1) *average_daily_salestotal_amountFROMt2)
SELECTCONCAT('', p.product_id) product_id, product_name, report_year, total_amountFROMt3JOINProductpONp.product_id=t3.product_idORDERBYproduct_id, report_year
目录
相关文章
|
存储 关系型数据库 MySQL
数据库系列课程(12)-MySQL数据库优化及注意事项
数据库系列课程(12)-MySQL数据库优化及注意事项
67 0
|
数据库
LeetCode(数据库)- 当选者
LeetCode(数据库)- 当选者
95 0
|
数据库
LeetCode(数据库)- 销售员
LeetCode(数据库)- 销售员
57 0
|
关系型数据库 MySQL 数据库
LeetCode(数据库)- 寻找用户推荐人
LeetCode(数据库)- 寻找用户推荐人
91 0
|
数据库
LeetCode(数据库)- 寻找没有被执行的任务对
LeetCode(数据库)- 寻找没有被执行的任务对
97 0
|
数据库
LeetCode(数据库)- 页面推荐
LeetCode(数据库)- 页面推荐
99 0
|
数据库
LeetCode(数据库)- 2020年最后一次登录
LeetCode(数据库)- 2020年最后一次登录
95 0
|
数据库
LeetCode(数据库)- 院系无效的学生
LeetCode(数据库)- 院系无效的学生
97 0
|
数据库
LeetCode(数据库)- 求关注者的数量
LeetCode(数据库)- 求关注者的数量
96 0
|
数据库
LeetCode(数据库)- 大满贯数量
LeetCode(数据库)- 大满贯数量
112 0