商品销售数据分析实验

进入虚拟机,启动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_moneyfrom( select a.product_id, a.amt, b.category_namefrom t_dml ajoin t_product bon 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 rkfrom( select product_id, sum(cnt) as cnt_totalfrom t_dmlgroup by product_idorder by cnt_total desclimit 10) tjoin t_product aon 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_namefrom t_dml ajoin t_product bon a.product_id=b.product_id
) t
insert overwrite table t_city_amtselect province, city, sum(amt)group by province, city
insert overwrite table t_city_prodselect province, city, product_id, product_name, sum(cnt)group by province, city, product_id, product_name;

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

select province, city, total_moneyfrom( select province, city, total_money,dense_rank() over (partition by province order by total_money desc) as rkfrom t_city_amt) t
where t.rk=1
order by total_money desc;

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

select province, city, product_id, product_namefrom( select province, city, product_id, product_name,dense_rank() over (partition by province order by cnt desc) as rkfrom t_city_prod) t
where t.rk=1
order by province, city;

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87954.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PH热榜 | 2025-07-08

1. TensorBlock Forge 标语:人工智能模型的API 介绍:Forge是一个快速且安全的工具,让你可以跨不同供应商连接和运行AI模型 产品网站: 立即访问 Product Hunt: View on Product Hunt 票数: &#x1f53a…

2025-01)electronjs-v11.2.0升级到新版本electronjs-v37.2.0记录,node版本记录,淘宝镜像配置记录,升级记录

背景:由于22年使用electronjs开发的自助机客户端几年没去维护,现在有需求要修改,电脑也换新了,node环境也没,直接把electron从 之前的 11.2.0 版本 升级到了37.2.0版本,升级最主要的目的是升级谷歌浏览器内核,升级后谷歌浏览器内核直接从87升级到了138,可以支持谷歌最新…

iQOO手机怎样相互远程控制?其他手机可以远程控制iQOO吗?

iQOO是Vivo同一品牌下的产品,它们两款手机都可以使用手机内置的远程控制功能。具体做法是,打开控制端的iQOO手机的【设置】【快捷与辅助】、【远程协助】,然后输入被控端的电话号码,等被控端的手机接受远程协助后,就可…

【入门级-C++程序设计:3、程序基本语句-多层循环语句】

1、定义: 在 C 中,多层循环(嵌套循环)是指在一个循环体内包含另一个或多个循环语句。它常用于处理多维数据结构(如二维数组)、复杂的迭代逻辑(如矩阵运算、图形打印、组合遍历等)。多…

四、jenkins自动构建和设置邮箱

一、jenkins自动构建什么自动构建、有啥用:触发方式代码提交(Git push)定时任务(如每天凌晨构建)手动点击等方式(立即执行)执行内容从 Git/SVN 拉取最新代码运行编译(如 Maven/Gradl…

【深度学习新浪潮】深入解析LLM关键概念:架构、优化与最新研究进展

1. Transformer架构与注意力机制 概念解析 Transformer是LLM的核心架构,由编码器和解码器组成,其核心创新是自注意力机制,通过计算输入序列中每个位置的关联权重,动态聚焦关键信息。自注意力机制的计算复杂度为O(n),在处理长序列时成为性能瓶颈。 代码示例:基础Transfo…

RAGflow图像解析与向量化分析

RAGflow图像解析与向量化分析 注:需要提前部署好ragflow,才方便一 一对应代码,部署教程:rag部署教程,这样才会方便后续更改 1. 图像解析流程 RAGflow通过多种解析器处理不同类型的文档,其中图像解析是一个重要组成部分。以下是RAGflow处理图像的主要流程: 1.1 PDF文…

千翼破界,百景赋能 | 2025深圳eVTOL展无人机场景应用专场即将启幕

在技术革新、应用深化、产业链协同升级及低空空域管理改革等多重政策红利驱动下,我国工业级无人机产业正迈入爆发式增长新阶段,持续引领民用无人机市场繁荣。数据显示,2019 至2024年,我国民用无人机市场规模从435.1亿元跃升至1108…

Go语言标识符命名规则详解:工程化实践

引言 Go语言的命名规则是其简洁哲学和工程实用性的集中体现。下面从语法规范、最佳实践到实际应用进行全面解析: 一、基础命名规则 1. 变量命名 // 小驼峰式(lowerCamelCase) var userName string var maxRetryCount 3 var isConnected bool…

RISC-V:开源芯浪潮下的技术突围与职业新赛道 (一)为什么RISC-V是颠覆性创新?

第一篇:开篇:为什么RISC-V是颠覆性创新? 打破70年架构垄断,开源硬件如何重塑芯片产业规则?一、传统架构的“围城之困”(痛点切入) ARM/X86的统治代价 授权费暴利模型 : ARM指令集授权…

【机器学习笔记 Ⅱ】7 多类分类

1. 多类分类(Multi-class Classification) 定义 多类分类是指目标变量(标签)有超过两个类别的分类任务。例如: 手写数字识别:10个类别(0~9)。图像分类:区分猫、狗、鸟等。…

2025年深圳杉川机器人性格测评和Verify测评SHL题库高分攻略

1、杉川机器人包含性格测评和Verify测评,预计用时60min,请确保作答时周围环境无干扰、网络畅通;2、请使用电脑完成作答,建议使用以下浏览器登录:IE9.0及以上版本,火狐,谷歌;3、杉川机…

【flutter 在最新版本中已经弃用了传统的 apply from 方式引入 Gradle 插件】

报错 Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! Launching lib\main.dart on 2112123AC in debug mode... Running Gradle task assembleDebug...FAILURE: Build failed with an exception.* Where: Script D…

Web后端实战:(部门管理)

1.准备工作 1.1开发规范 1.1.1前后端分离开发 我们目前基本都是采用的前后台分离开发方式,如下图所示: 那么基于前后台分离开发的模式下,我们后台开发者开发一个功能的具体流程如何呢?如下图所示: 需求分析&…

字节寻址(Byte Addressing) 与 Verilog中的寄存器索引

字节寻址(Byte Addressing) 与 Verilog中的寄存器索引 之间的关系。 您的疑问非常正确,直接看 3h1 很容易让人以为地址就是 0x01。 但答案是:是的,3h1 在这里对应的字节地址(Byte Address)确实是…

Ubuntu远程桌面

方法1: 检查并使用已安装的VNC或远程桌面组件 请在终端中执行以下命令检查系统中已安装的相关组件: bash# 检查系统中已安装的VNC和远程桌面相关软件 dpkg -l | grep -E "vnc|vino|remote|rdp"# 检查常见远程桌面服务 which vino-server tigervncserver x11vnc xr…

WEB攻防-文件包含LFIRFI伪协议编码算法无文件利用黑白盒

知识点: 1、文件包含-原理&分类&危害-LFI&RFI 2、文件包含-利用-黑白盒&无文件&伪协议 一、演示案例-文件包含-原理&分类&利用 1、原理 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时&#xff…

LabVIEW的GPIB仪器校准

基于LabVIEW开发平台与 GPIB 总线技术,采用是德科技、泰克等硬件设备,构建示波器与频谱分析仪自动校准系统。通过图形化编程实现校准流程自动化,涵盖设备连接、参数配置、数据采集、误差分析及报告生成,显著提升校准效率与精度&am…

Zotero中进行文献翻译【Windows11】

zotero官网:https://www.zotero.org/ 1 在Zotero软件中安装插件 进入Zotero百科全书,依次点击:插件→翻译插件→插件介绍→Zotero 中文社区插件商店 进去后搜索pdf2zh,然后下载后放入空白文件夹zotero-pdf2zh 打开Zotero软件后…

用U盘启动制作centos系统最常见报错,系统卡住无法继续问题(手把手)

一、按照操作系统centos7报错如下(U盘) 按照系统报错如下: ERROR: could not insert ‘floppy’; ERROR: could not insert ‘edd’ : No这种报错很常见,基本上就是u盘启动路径找不到导致,遇到次数比较多所以也比较好解…