LeetCode MySQL 1384. 按年度列出销售总额
生活随笔
收集整理的這篇文章主要介紹了
LeetCode MySQL 1384. 按年度列出销售总额
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
Product 表:
+---------------+---------+ | Column Name | Type | +---------------+---------+ | product_id | int | | product_name | varchar | +---------------+---------+ product_id 是這張表的主鍵。 product_name 是產品的名稱。Sales 表:
+---------------------+---------+ | Column Name | Type | +---------------------+---------+ | product_id | int | | period_start | varchar | | period_end | date | | average_daily_sales | int | +---------------------+---------+ product_id 是這張表的主鍵。 period_start 和 period_end 是該產品銷售期的起始日期和結束日期,且這兩個日期包含在銷售期內。 average_daily_sales 列存儲銷售期內該產品的日平均銷售額。編寫一段SQL查詢每個產品每年的總銷售額,并包含 product_id, product_name 以及 report_year 等信息。
銷售年份的日期介于 2018 年到 2020 年之間。
你返回的結果需要按 product_id 和 report_year 排序。
查詢結果格式如下例所示:
Product table: +------------+--------------+ | product_id | product_name | +------------+--------------+ | 1 | LC Phone | | 2 | LC T-Shirt | | 3 | LC Keychain | +------------+--------------+Sales table: +------------+--------------+-------------+---------------------+ | product_id | period_start | period_end | average_daily_sales | +------------+--------------+-------------+---------------------+ | 1 | 2019-01-25 | 2019-02-28 | 100 | | 2 | 2018-12-01 | 2020-01-01 | 10 | | 3 | 2019-12-01 | 2020-01-31 | 1 | +------------+--------------+-------------+---------------------+Result table: +------------+--------------+-------------+--------------+ | product_id | product_name | report_year | total_amount | +------------+--------------+-------------+--------------+ | 1 | LC Phone | 2019 | 3500 | | 2 | LC T-Shirt | 2018 | 310 | | 2 | LC T-Shirt | 2019 | 3650 | | 2 | LC T-Shirt | 2020 | 10 | | 3 | LC Keychain | 2019 | 31 | | 3 | LC Keychain | 2020 | 31 | +------------+--------------+-------------+--------------+ LC Phone 在 2019-01-25 至 2019-02-28 期間銷售,該產品銷售時間總計35天。銷售總額 35*100 = 3500。 LC T-shirt 在 2018-12-01 至 2020-01-01 期間銷售,該產品在2018年、2019年、2020年的銷售時間分別是31天、365天、1天,2018年、2019年、2020年的銷售總額分別是31*10=310、365*10=3650、1*10=10。 LC Keychain 在 2019-12-01 至 2020-01-31 期間銷售,該產品在2019年、2020年的銷售時間分別是:31天、31天,2019年、2020年的銷售總額分別是31*1=31、31*1=31。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/total-sales-amount-by-year
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 使用 datediff 求出日期之間的差,嵌套使用 if 確定年的起始和結束
- 求出3個年份的 合并 union all,再分組,求和
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode MySQL 1384. 按年度列出销售总额的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LintCode 1816. 使结果不超
- 下一篇: LeetCode 549. 二叉树中最长