题19
写一个SQL语句,报告周内每天每个商品类别下订购了多少单位,返回结果表单按商品类别排序。
其中:
- Orders表:order_id, item_id 是该表主键
- Items表:item_id是该表主键,item_name是商品的名字,item_category是商品的类别.
解题思路:
- 先理解:DAYOFWEEK-返回一个介于1和7之间的数字,该数字对应于指定日期表达式是一周中的星期几。例如,1对应星期日,2对应星期一,……,7对应星期六;
- 用case when建立新的列,再往里面填充内容
select
a.item_category as CATEGORY,
sum(case when weekday(order_date)=0 then quantity else 0 end) as MONDAY,
sum(case when weekday(order_date)=1 then quantity else 0 end) as TUESDAY,
sum(case when weekday(order_date)=2 then quantity else 0 end) as WEDNESDAY,
sum(case when weekday(order_date)=3 then quantity else 0 end) as THURSDAY,
sum(case when weekday(order_date)=4 then quantity else 0 end) as FRIDAY,
sum(case when weekday(order_date)=5 then quantity else 0 end) as SATURDAY,
sum(case when weekday(order_date)=6 then quantity else 0 end) as SUNDAY
from items a
left join orders b on
a.item_id=b.item_id
group by CATEGORY
order by CATEGORY;