0
点赞
收藏
分享

微信扫一扫

leetcode简单之1543.产品名称格式修复

Android开发指南 2022-04-14 阅读 89
mysql

表:Sales

Column NameType
sale_idint
product_namevarchar
sale_datedate

sale_id 是该表主键
该表的每一行包含了产品的名称及其销售日期

因为在 2000 年该表是手工填写的,product_name 可能包含前后空格,而且包含大小写。

问题

写一个 SQL 语句报告每个月的销售情况:

product_name 是小写字母且不包含前后空格
sale_date 格式为 (‘YYYY-MM’)
total 是产品在本月销售的次数
返回结果以 product_name 升序 排列,如果有排名相同,再以 sale_date 升序 排列。

示例 :

输入:

Sales 表:

sale_idproduct_namesale_date
1LCPHONE2000-01-16
2LCPhone2000-01-17
3LcPhOnE2000-02-18
4LCKeyCHAiN2000-02-19
5LCKeyChain2000-02-28
6Matryoshka2000-03-31

输出:

product_namesale_datetotal
lcphone2000-012
lckeychain2000-022
lcphone2000-021
matryoshka2000-031

解释:
1 月份,卖了 2 个 LcPhones,请注意产品名称是小写的,中间可能包含空格
2 月份,卖了 2 个 LCKeychains 和 1 个 LCPhone
3 月份,卖了 1 个 matryoshka

解答

错误答案:
select lower(trim(product_name)) product_name,
    date_format(sale_date,'%Y-%m') sale_date,
    count(*) total
from sales
group by product_name,sale_date  #错误点,应是对格式调整后的字段group by
order by product_name,sale_date
正确答案
select lower(trim(product_name)) product_name,
    date_format(sale_date,'%Y-%m') sale_date,
    count(*) total
from sales
group by lower(trim(product_name)), date_format(sale_date,'%Y-%m')
order by product_name,sale_date
举报

相关推荐

0 条评论