商品销售数据分析实验

进入虚拟机,启动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;
相关推荐
hboot2 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
秃头网友小李2 天前
前端难点:keep-alive 缓存什么?RouterView 的 key 为什么要带 scopeId?
前端·vue.js
徐小夕2 天前
JitWord 3.0 正式发布,高精度Word异构解析+复杂组件兼容,打造web端协同Word编辑器
前端·vue.js·算法
奋斗吧程序媛3 天前
补充一个小知识点:有关@click.native
前端·vue.js
王小王-1233 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
英勇无比的消炎药3 天前
一行命令背后:TinyRobot CLI 如何重构 AI 对话接入的效率范式
vue.js·aigc
Database_Cool_3 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
YangYang9YangYan3 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
jay神3 天前
基于 FastAPI + Vue 的宠物领养管理系统
前端·vue.js·python·毕业设计·fastapi·宠物
一杯奶茶¥3 天前
水果销售网站 CRM客户信息管理系统 超市管理系 酒店管理系统 健身房管理系统 在线音乐网站 校园招聘系统
java·vue.js·spring boot·mysql·spring·java项目