1、为以上两张表建立Mysql表格,并导入数据
答:
1-1-1、创建地区表代码:
CREATE TABLE area_table ( store_id VARCHAR ( 10 ), area VARCHAR ( 20 ), leader_id INT );
1-1-2、数据导入为图形化方式导入,结果截图如下:
地区表结果截图1-2-1、创建店铺表代码:
CREATE TABLE store_table ( store_id VARCHAR ( 10 ), order_id VARCHAR ( 12 ), sales_volume INT, sales_date date );
1-2-2、数据导入为图形化方式导入,结果截图如下:
地区表结果截图2.1.统计每日每个店铺的销量(10分)
2-1-1.代码:
SELECT
store_id AS 店铺名称,
sum(sales_volume) AS 销售数量,
sales_date AS 销售日期
FROM store_table
group by store_id,sales_date
order BY sales_date,store_id;
2-1-2、运行结果截图:
每个店铺每日销量运行结果截图2.2.统计每日每个区域的销量(10分)
2-2-1、代码:
SELECT
a.area,
sum( sales_volume ),
b.sales_date
FROM
area_table a
LEFT JOIN
store_table b ON a.store_id = b.store_id
GROUP BY
area,sales_date;
2-2-2、运行结果截图:
每个地区每日销量运行结果截图3.1.请分析代码为什么无法执行出期望结果?(10分)
答:日期的筛选条件放到了where后面,这样的执行顺序为:表先进行链接,链接后再通过where的条件筛选。
正确的方式应该为:把日期筛选条件放到on后面,这样可以先进行日期条件筛选,再链接,这样就能取到店铺3的数据。
3.2.请修改代码,产出报表的设想结果。(10分)
3-2-1、代码:
select
a.store_id
,IFNULL(sum(sales_volume),0) as sales_volumes
from area_table a
left join
store_table b
on a.store_id=b.store_id
and b.sales_date=DATE_SUB(curdate(),INTERVAL 1 DAY)
where a.area='alpha'
GROUP BY a.store_id
order by a.store_id;
3-2-2、运行结果截图
运行结果截图4、程序阅读
6、
6-1、from temp_active_hour_table_kps
6-2、group by dt,mkey,product_id,device_id,hour
8、
8-1、from temp_active_hour_table_kps
8-2、group by dt,mkey,product_id,device_id
8-3、select
dt
,product_id
,mkey
,min(hour) as hour
,device_id
,'first' as status
from temp_active_hour_table_kps
group by dt,mkey,product_id,device_id
10、
left join
(
select
dt
,device_id
from kps_dwd.kps_dwd_dd_fact_view_new_user
where dt='${dt_1}'
group by dt,device_id
)b on a.dt=b.dt and a.device_id = b.device_id
group by dt
,product_id
,mkey
,hour
,status
) a1
12、
left join
asian_channel.dict_lcmas_channel b1
on a1.mkey = b1.mkey;
网友评论