中级练习[10]:Hive SQL

目录

1. 各品类销量前三的所有商品

1.1 题目需求

1.2 代码实现

2. 各品类中商品价格的中位数

2.1 题目需求

2.2 代码实现

3. 找出销售额连续3天超过100的商品

3.1 题目需求

3.2 代码实现


 

1. 各品类销量前三的所有商品

1.1 题目需求

从订单详情表中(order_detail)和商品表(sku_info)中查询各个品类销售数量前三的商品。如果该品类小于三个商品,则输出所有的商品销量。

Sku_id(商品id)Category_id(品类id)
21
41
11
82
72
52
123
113
103

1.2 代码实现

hive>
selectt2.sku_id,t2.category_id
from(selectt1.sku_id,si.category_id,rank() over(partition by category_id order by t1.sku_sum desc) rkfrom(select sku_id,sum(sku_num) sku_sumfromorder_detailgroup bysku_id)t1joinsku_info siont1.sku_id = si.sku_id)t2
where t2.rk <= 3;

2. 各品类中商品价格的中位数

2.1 题目需求

从商品表(sku_info)中求出每个品类的价格中位数。如果是偶数则输出中间两个值的平均值,如果是奇数,则输出中间数即可。

Category_id(品类id)Medprice(中位数)
13500.0
21250.0
3510.0

2.2 代码实现

hive>
-- 求每个品类价格排序后的商品数量,并标记奇偶性
selectsku_id,category_id,price,row_number() over(partition by category_id order by price desc) rk,count(*) over(partition by category_id) cn,count(*) over(partition by category_id) % 2 flag
fromsku_info t1-- 求出偶数品类的中位数
selectdistinct t1.category_id,avg(t1.price) over(partition by t1.category_id) medprice
from(selectsku_id,category_id,price,row_number() over(partition by category_id order by price desc) rk,count(*) over(partition by category_id) cn,count(*) over(partition by category_id) % 2 flagfromsku_info)t1
where t1.flag = 0 and (t1.rk = cn / 2 or t1.rk = cn / 2 + 1)-- 求出奇数品类的中位数
union allselectt1.category_id,t1.price
from(selectsku_id,category_id,price,row_number() over(partition by category_id order by price desc) rk,count(*) over(partition by category_id) cn,count(*) over(partition by category_id) % 2 flagfromsku_info)t1
where t1.flag = 1 and t1.rk = round(cn / 2)

3. 找出销售额连续3天超过100的商品

3.1 题目需求

从订单详情表(order_detail)中找出销售额连续3天超过100的商品。

Sku_id(商品id)
1
10
11
12
2
3
4
5
6
7
8
9

3.2 代码实现

hive>
-- 每个商品每天的销售总额
selectsku_id,create_date,sum(price * sku_num) sku_sum
fromorder_detail
group bysku_id, create_date
having sku_sum >= 100-- 判断连续三天以上
selectdistinct t3.sku_id
from(selectt2.sku_id,count(*) over(partition by t2.sku_id, t2.date_drk) cdrkfrom(selectt1.sku_id,t1.create_date,date_sub(t1.create_date, rank() over(partition by t1.sku_id order by t1.create_date)) date_drkfrom(selectsku_id,create_date,sum(price * sku_num) sku_sumfromorder_detailgroup bysku_id, create_datehaving sku_sum >= 100)t1)t2)t3
wheret3.cdrk >= 3

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

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

相关文章

go get -u @latest没有更新依赖模块

使用 go get -u gitee.com/qingfeng-169/hello-blatest 时&#xff0c;如果没有进行更新&#xff0c;可能有以下几种原因&#xff1a; 1. 没有发布稳定版本 (vX.X.X) latest 表示获取该模块最新的稳定版本&#xff08;即带有 vX.X.X 形式的版本号&#xff09;&#xff0c;而不…

无人机之处理器篇

无人机的处理器是无人机系统的核心部件之一&#xff0c;它负责控制无人机的飞行、数据处理、任务执行等多个关键功能。以下是对无人机处理器的详细解析&#xff1a; 一、处理器类型 无人机中使用的处理器主要包括以下几种类型&#xff1a; CPU处理器&#xff1a;CPU是无人机的…

VMware Fusion虚拟机Mac版 安装Ubuntu操作系统教程

Mac分享吧 文章目录 下载镜像地址&#xff1a;[www.macfxb.cn](http://www.macfxb.cn)一、Ubuntu安装完成&#xff0c;软件打开效果二、Mac中安装Ubuntu虚拟机1️⃣&#xff1a;下载镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;虚拟机设置4️⃣&#xff1a;虚拟机安装5️…

Oracle绑定变量窥视与自适应游标共享

一.Oracle的绑定变量窥视与自适应游标共享 创建test表&#xff0c;列status存在2个值&#xff0c;有数据倾斜&#xff0c;在列status create table test as select rownum id,DBMS_RANDOM.STRING(A,12) name,DECODE(MOD(ROWNUM,500),0,Inactive,Active) status from all_obj…

MyBatis 增删改查【后端 17】

MyBatis 增删改查 引言 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射&#xff0c;将接口和 Java 的 POJOs (…

photozoom classic 9解锁码2024年最新25位解锁码

photozoom classic 9 破解版顾及比恐龙还要稀有&#xff0c;我曾经和你一样一直再找&#xff0c;找了好几个月&#xff0c;也没有找到真的破解版&#xff0c;下载很多次&#xff0c; 都是病毒插件之类的 我昨天下了几次&#xff0c;没有一个不附带插件病毒木马的.......&#x…

MongoDB高可用和分片集群知识

一、MongoDB实现高可用 1. MongoDB复制集(Replication Set) 在实际生产中&#xff0c;MongoDB要实现高可用&#xff0c;以免MongoDB单实例挂了&#xff0c;服务不可用。MongoDB实现高可用是以MongoDB复制集的形式实现&#xff0c;和集群部署概念相同&#xff0c;MongoDB复制集…

COTERRORSET—— LLM训练新基准让模型从自身错误中学习

概述 论文地址&#xff1a;https://arxiv.org/pdf/2403.20046.pdf 在最近的研究中&#xff0c;大规模语言模型因其推理能力而备受关注。这些模型在各种任务和应用中取得了令人瞩目的成果&#xff0c;尤其是使用思维链&#xff08;CoT&#xff09;提示方法的有效性已得到证实。…

研1日记12

1. 改19->10 2. 学习数据不平衡问题 1. 欠采样 合并两个样本数据 两种方式 1. 按原分布比例划分。sklearn中train_test_split里&#xff0c;参数stratify含义解析_traintestsplit参数stratify-CSDN博客 3.刘二大人 卷积操作 待看论文&#xff1a; 刘老师指导&#xff1a…

[Mamba_4]LMa-UNet

题目&#xff1a;LKM-UNet: Large Kernel Vision Mamba UNet for Medical Image Segmentation 中文题目&#xff1a;LMa-UNet: 探索大kernel Mamba在医学图像分割上的潜力 0摘要 在临床实践中&#xff0c;医学图像分割提供了有关目标器官或组织的轮廓和尺寸的有用信息&#…

外贸|基于Java+vue的智慧外贸平台系统(源码+数据库+文档)

外贸|智慧外贸平台|外贸服务系统 目录 基于Javavue的智慧外贸平台系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&…

Docker容器技术1——docker基本操作

Docker容器技术 随着云计算和微服务架构的普及&#xff0c;容器技术成为了软件开发、测试和部署过程中的重要组成部分。其中&#xff0c;Docker作为容器技术的代表之一&#xff0c;以其简便易用的特点赢得了广大开发者的青睐。 Docker允许开发者在轻量级、可移植的容器中打包和…

JDK 安装及配置教程(Windows)【安装】

文章目录 一、 下载1. 官网下载2. 其它渠道 二、 安装三、 配置四、 验证五、 双 JDK 环境 软件 / 环境安装及配置目录 一、 下载 1. 官网下载 安装地址&#xff1a;https://www.oracle.com/ 打开浏览器输入网址 https://www.oracle.com/index.html&#xff0c;进入 Oracle …

Java和西门子S7-1200通讯调试记录

这是很久以前做的一个项目&#xff0c;工业现场一个agv&#xff0c;主要作用的清扫摇床&#xff08;一种选矿设备&#xff09;&#xff0c;选用的S7-1200的CPU。工作原理是agv上面放一个机械臂&#xff0c;机械臂上面装一个扫把&#xff0c;到固定位置以后&#xff0c;执行清扫…

Spring Boot-跨服务事务管理问题

Spring Boot 跨服务事务管理问题及其解决方案 1. 引言 在微服务架构中&#xff0c;应用被拆分成多个独立的服务&#xff0c;这些服务通常通过 HTTP、消息队列或 gRPC 等方式相互通信。在某些场景下&#xff0c;一个业务流程需要在多个服务之间进行操作&#xff0c;每个服务会…

揭开谜底:用 C 语言打造你的扫雷游戏!

目录 1. 功能概述 用户界面 2. 游戏分析与设计 2.1 数据结构分析 地雷存储&#xff1a; 玩家视图&#xff1a; 2.2 文件结构设计 3. 代码实现 game.h game.c test.c 亮点功能与创新 智慧的较量&#xff1a;核心游戏循环 进阶功能&#xff1a;让游戏更加与众不同 还…

golang学习笔记18——golang 访问 mysql 数据库全解析

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…

人工智能GPT____豆包使用的一些初步探索步骤 体验不一样的工作

豆包工具是我使用比较频繁的一款软件&#xff0c;其集合了很多功能。对话 图像 AI搜索 伴读等等使用都非常不错。电脑端安装集合了很多功能。 官网直达&#xff1a;豆包 使用我的文案创作能力&#xff0c;您可以注意以下几个技巧&#xff1a; 明确需求&#xff1a; 尽可能具…

Vue3实现打印功能

1、安装插件 npm i vue3-print-nb --save 2、main.js全局配置 import print from vue3-print-nb app.use(print) 3、设置打印区域 为打印区域设置 id 选择器 <div id"printData"><el-table border :data"tableData" style"width: 100%…

和笔记相关的页面:编辑笔记和展示笔记 以及相关的viewmodel

1. 编辑笔记 EditNotesScreen&#xff1a;这是一个可编辑笔记的屏幕&#xff0c;它接收一个NavController对象、一个书籍的bookId和一个可选的modifier参数。它使用了LocalNotesViewModel来管理笔记的数据。 它首先定义了几个状态变量&#xff0c;包括是否显示对话框、编辑内…