商品销售数据分析实验

进入虚拟机,启动HDFS和Yarn

1.创建表

复制代码
hive
show databases;
use test;

销售订单表

复制代码
create table t_dml (
  detail_id bigint,
  sale_date date,  
  province string,
  city string,
  product_id bigint,
  cnt bigint,
  amt double
)row format delimited
fields terminated by ',';

商品详细表:

复制代码
create table t_product (
    product_id bigint, 
    product_name string, 
    category_id bigint, 
    category_name string, 
    price double
)row format delimited
fields terminated by ',';

2.加载数据

创建目录存放数据

复制代码
mkdir /opt/data

加载数据

复制代码
load data local inpath '/opt/data/t_dml.csv' into table t_dml;
load data local inpath '/opt/data/t_product.csv' into table t_product;

3. 销售数据分析

1.查询t_dml中的销售记录的时间段:

复制代码
select max(sale_date), min(sale_date) from t_dml;

2.查询各商品类别的总销售额

复制代码
select t.category_name, sum(t.amt) as total_money
 from
 ( select a.product_id, a.amt, b.category_name
 from t_dml a
 join t_product b
 on a.product_id=b.product_id
 ) t
group by t.category_name;

3.店主想知道哪个商品最畅销以及销量排行榜,请查询销量前10的商品,显示商品名称,销量,排名。

复制代码
select a.product_name , t.cnt_total,
 rank() over (order by t.cnt_total desc) as rk
 from
 ( select product_id, sum(cnt) as cnt_total
 from t_dml
 group by product_id
 order by cnt_total desc
 limit 10
 ) t
 join t_product a
 on t.product_id=a.product_id;

4.店主想知道各个市县的购买力,同时也想知道自己的哪个商品在该地区最热卖,通过创建中间表,优化查询。

1. 创建结果存放表:

复制代码
create table t_city_amt
( province string,
 city string,
 total_money double
);
create table t_city_prod
( province string,
 city string,
 product_id bigint,
 product_name string,
 cnt bigint
);

2.插入数据

复制代码
insert into t_city_amt
select province,city,sum(amt)
from t_dml group by province,city;

SELECT * FROM t_city_amt;
复制代码
insert into t_city_prod
select t.province,t.city,t.product_id,t.product_name,sum(t.cnt) from
(
select a.product_id,b.product_name,a.cnt,a.province,a.city
from t_dml a join t_product b
on a.product_id = b.product_id
) t
group by t.province,t.city,t.product_id,t.product_name;

SELECT * FROM t_city_prod;

3. 优化

复制代码
from 
( select a.*, b.product_name
 from t_dml a
 join t_product b
 on a.product_id=b.product_id
) t
insert overwrite table t_city_amt
 select province, city, sum(amt)
 group by province, city
insert overwrite table t_city_prod
 select province, city, product_id, product_name, sum(cnt)
 group by province, city, product_id, product_name;

5.统计各省最强购买力地区:

复制代码
select province, city, total_money
 from
 ( 
  select province, city, total_money,
  dense_rank() over (partition by province order by total_money desc) as rk
  from t_city_amt
 ) t
where t.rk=1
order by total_money desc;

6.统计各地区的最畅销商品

复制代码
select province, city, product_id, product_name
 from
 ( select province, city, product_id, product_name,
 dense_rank() over (partition by province order by cnt desc) as rk
 from t_city_prod
 ) t
where t.rk=1
order by province, city;
相关推荐
李剑一34 分钟前
小红书前端架构面试问的挺深入啊!面试官:Vue中组合式API与选项式API的设计权衡
vue.js·面试
一 乐1 小时前
汽车租赁|基于SprinBoot+vue的汽车租赁管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·汽车·论文·毕设·汽车租赁管理系统
城数派4 小时前
2026年500米分辨率DEM地形数据(全球/全国/分省/分市)
数据库·arcgis·信息可视化·数据分析·excel
MaCa .BaKa5 小时前
55-宠物爱心救助领养系统-宠物救助领养系统
java·vue.js·tomcat·maven·springboot·宠物救助领养系统
DisonTangor6 小时前
跃阶星辰开源Step 3.7 Flash:原生多模态,最高生成速度400 Tokens/s
人工智能·语言模型·数据挖掘·开源·aigc
海鸥两三6 小时前
基于 Vue 3 + 高德地图的网格规划系统实战(有源码)
前端·javascript·vue.js
weixin_468466856 小时前
图像分类技术落地应用与实战指南
人工智能·深度学习·ai·分类·数据挖掘·图像分类·模型部署
春日见7 小时前
强化学习方法分类:
人工智能·机器学习·分类·数据挖掘·强化学习
搞科研的小刘选手7 小时前
【大数据方向专题研讨会】第三届大数据与数字化管理国际学术会议(ICBDDM 2026)
大数据·信息安全·数据挖掘·云计算·可视化·供应链·信息管理
专注VB编程开发20年7 小时前
我制作excel工作簿的选项卡,发给deep seek, 昨天修改了一天
前端·vue.js·excel