本文共 1629 字,大约阅读时间需要 5 分钟。
要求:写一个 SQL 语句报告每个月的销售情况,product_name 是小写字母且不包含前后空格,sale_date 格式为 (‘YYYY-MM’) ,total 是产品在本月销售的次数,返回结果以 product_name 升序 排列,如果有排名相同,再以 sale_date 升序 排列。
表:Sales的结构
+--------------+---------+| Column Name | Type |+--------------+---------+| sale_id | int || product_name | varchar || sale_date | date |+--------------+---------+sale_id 是该表主键该表的每一行包含了产品的名称及其销售日期因为在 2000 年该表是手工填写的,product_name 可能包含前后空格,而且包含大小写。
Sales 表:
+------------+------------------+--------------+| sale_id | product_name | sale_date |+------------+------------------+--------------+| 1 | LCPHONE | 2000-01-16 || 2 | LCPhone | 2000-01-17 || 3 | LcPhOnE | 2000-02-18 || 4 | LCKeyCHAiN | 2000-02-19 || 5 | LCKeyChain | 2000-02-28 || 6 | Matryoshka | 2000-03-31 | +------------+------------------+--------------+
Result Table:
+--------------+--------------+----------+| product_name | sale_date | total |+--------------+--------------+----------+| lcphone | 2000-01 | 2 || lckeychain | 2000-02 | 2 | | lcphone | 2000-02 | 1 | | matryoshka | 2000-03 | 1 | +--------------+--------------+----------+1 月份,卖了 2 个 LcPhones,请注意产品名称是小写的,中间可能包含空格2 月份,卖了 2 个 LCKeychains 和 1 个 LCPhone3 月份,卖了 1 个 matryoshka
SQL语句:
with a as(select sale_id,lower(replace(product_name,' ','')) as product_name,substr(sale_date,1,7) as sale_datefrom sales)select product_name,sale_date,count(sale_id) as totalfrom agroup by product_name,sale_dateorder by product_name asc,sale_date asc;
转载地址:http://nngwi.baihongyu.com/