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