1479 周内每天的销售情况 (列转行 )首先得到一个标签,任何group by sum(if(标签))

Create table If Not Exists Orders (order_id int, customer_id int, order_date date, item_id varchar(30), quantity int)
Create table If Not Exists Items (item_id varchar(30), item_name varchar(30), item_category varchar(30))
Truncate table Orders
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('1', '1', '2020-06-01', '1', '10')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('2', '1', '2020-06-08', '2', '10')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('3', '2', '2020-06-02', '1', '5')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('4', '3', '2020-06-03', '3', '5')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('5', '4', '2020-06-04', '4', '1')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('6', '4', '2020-06-05', '5', '5')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('7', '5', '2020-06-05', '1', '10')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('8', '5', '2020-06-14', '4', '5')
insert into Orders (order_id, customer_id, order_date, item_id, quantity) values ('9', '5', '2020-06-21', '3', '5')
Truncate table Items
insert into Items (item_id, item_name, item_category) values ('1', 'LC Alg. Book', 'Book')
insert into Items (item_id, item_name, item_category) values ('2', 'LC DB. Book', 'Book')
insert into Items (item_id, item_name, item_category) values ('3', 'LC SmarthPhone', 'Phone')
insert into Items (item_id, item_name, item_category) values ('4', 'LC Phone 2020', 'Phone')
insert into Items (item_id, item_name, item_category) values ('5', 'LC SmartGlass', 'Glasses')
insert into Items (item_id, item_name, item_category) values ('6', 'LC T-Shirt XL', 'T-shirt')

知识点积累

mysql DAYOFWEEK 和 WEEKDAY获取星期几

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#列转行问题
select  a.item_category as 'Category',
sum(if(a.day=2,a.quantity,0)) as 'Monday',
sum(if(a.day=3,a.quantity,0)) as 'Tuesday',
sum(if(a.day=4,a.quantity,0)) as 'Wednesday',
sum(if(a.day=5,a.quantity,0)) as 'Thursday',
sum(if(a.day=6,a.quantity,0)) as 'Friday',
sum(if(a.day=7,a.quantity,0)) as 'Saturday',
sum(if(a.day=1,a.quantity,0)) as 'Sunday'

from 
#DAYOFWEEK(date) 
#返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

#WEEKDAY(date) 
#返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)             #获取星期几
(select  order_id, customer_id , order_date,d.item_id , quantity,DAYOFWEEK(order_date) as 'day',t.item_category

from Orders d
right join  Items t on d.item_id = t.item_id )a
group by a.item_category
order by a.item_category
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值