Hive 之数据透视表

news2024/11/25 7:04:18

文章目录

    • 什么是数据透视表?
    • 创建数据源
    • 基于各产品在各个平台半年内的月销售额与汇总,制作数据透视表

什么是数据透视表?

数据透视表是一种工具,用于帮助用户理解和分析大量数据。它通常是一个二维表格,可以让用户以不同的方式查看数据,例如按列汇总或按行分类。数据透视表常用于数据分析和商业智能应用程序中,可以帮助用户快速找出数据中的模式和趋势。

如下图所示:

创建数据源

数据来源:数据源

drop table transfer_log;

CREATE TABLE sales_data
(saledate DATE,  -- 销售日期
product STRING,  -- 产品名
channel STRING,  -- 销售渠道
amount DOUBLE  -- 销售额
);

示例数据:数据集下载

基于各产品在各个平台半年内的月销售额与汇总,制作数据透视表

select
       coalesce(product,"总计") product,
       coalesce(channel,"汇总") channel,
       sum(case when month(saledate) = 1 then 1 else amount end) January,
       sum(case when month(saledate) = 2 then 1 else amount end) February,
       sum(case when month(saledate) = 3 then 1 else amount end) March, 
       sum(case when month(saledate) = 4 then 1 else amount end) April,
       sum(case when month(saledate) = 5 then 1 else amount end) May,
       sum(case when month(saledate) = 6 then 1 else amount end) June
from
    sales_data
group by product,channel with rollup;

计算结果:

在这里插入图片描述

思路:

我们要像数据透视表一样展示数据,统计半年内各产品在各个平台半年内的月销售额与汇总。

首先就得要有各个月份的表头,统计各个月份各平台的销售额:

sum(case when month(saledate) = 1 then 1 else amount end) January

只统计当月的销售额。

这样一来我们就得到了半年来所有各个月份各平台的销售额:

在这里插入图片描述

但是并没有汇总结果,这时候我们就得借助 with rollup 函数。

如不了解该函数的使用,可以通过这两篇文章进行学习:

  • Hive - grouping sets 示例与详解

  • Hive - Cube, Rollup, GroupingId 示例与详解

这里的 with rollup 相当于 :

group by (product,channel) + group by product + group by 月份列

得到如下结果:

在这里插入图片描述

最终通过 coalesce 函数给空值进行填充,完成数据透视表分析。

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

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

相关文章

java计算机毕业设计springboot+vue航空公司电子售票系统-机票预订系统

项目介绍 通篇文章的撰写基础是实际的应用需要,然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程,以远程教育系统的实际应用需要出发,架构系统来改善现远程教育系统工作流程繁琐等问题。不仅如此以操作者的角度来说,该系统的架构能够对多媒体课程进…

手把手教你使用SpringBoot做一个员工管理系统【代码篇·下】

手把手教你使用SpringBoot做一个员工管理系统【代码篇下】1.增加员工实现2.修改员工信息3.删除员工4.404页面配置5.注销1.增加员工实现 新增添加员工的按钮&#xff1a; <h2><a class"btn btn-sm btn-success" th:href"{/addemp}">添加员工&…

0- LVGL移植基于野火STM32F429挑战者(LVGL8.2)

1-移植准备 LVGL8.2 野火STM32F429_v2开发板 因为ST在STM32F4之后所有的芯片都不在有标准库,因此本篇是基于HAL库的。同时现在有许多厂商都不在有标准库了,都是根据自己的开发环境进行一些基本芯片接口的配置。像NXP,ST等。 这里不过多介绍LVGL,既然看到这个文章,大多数是…

20221214英语学习

今日新词&#xff1a; minus prep.减去&#xff1b;&#xff08;温度&#xff09;零下 garlic n.【植】大蒜 linger v.停留&#xff0c;逗留&#xff1b;徘徊&#xff1b;继续留存&#xff0c;缓慢消失&#xff1b;苟延残喘 sarcastic adj.讽刺的, 嘲讽的, 挖苦的 data n.…

【LeetCode每日一题】——572.另一棵树的子树

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 树 二【题目难度】 简单 三【题目编号】 572.另一棵树的子树 四【题目描述】 给你两棵二叉树…

MySQL索引优化(二)

文章目录一、查询优化1. 索引失效&#xff08;1&#xff09;不满足最左前缀法则&#xff0c;索引失效&#xff08;2&#xff09;在索引列上做任何计算、函数操作&#xff0c;索引失效&#xff08;3&#xff09;存储引擎使用索引中范围条件右边的列&#xff0c;索引失效&#xf…

倪健中会长应邀出席首届世界数贸易博览会致辞:把杭州打造成全球数字贸易元宇宙之都

12月11日至14日&#xff0c;首届全球数字贸易博览会在浙江省杭州市盛大举办。博览会由浙江省人民政府和商务部联合主办&#xff0c;杭州市人民政府、浙江省商务厅和商务部贸发局共同承办&#xff0c;主题为“数字贸易商通全球”&#xff0c;爱尔兰为主宾国&#xff0c;北京、上…

大航海时代:葡萄牙、西班牙率先出发,英国为何成为最大赢家?

欧洲经历了长达千年的中世纪以后&#xff0c;忽然开始自我反省了。为啥&#xff1f;因为打了上千年&#xff0c;不仅社会没进步&#xff0c;反而因为各种瘟疫、战争&#xff0c;把人口搞掉了一大半。 这么玩下去&#xff0c;日耳曼人的各大分支&#xff0c;可能都要完犊子了&a…

基于java+springboot+mybatis+vue+mysql的智能热度分析和自媒体推送平台

项目介绍 前端页面&#xff1a; 功能&#xff1a;首页、文章信息、图片信息、视频信息、个人中心、后台管理 管理员后台管理页面&#xff1a; 功能&#xff1a;首页、个人中心、用户管理、文章类型管理、文章信息管理、图片类型管理、图片信息管理、视频类型管理、视频信息管…

数据工厂刷新PowerBI数据集2

前面已经介绍过数据工厂中刷新PowerBI数据集&#xff0c;我们先发起一个web请示获取了token&#xff0c;然后再把token传入到接口中从而刷新数据集。 但是&#xff0c;明明都是微软家的产品&#xff0c;竟然还需要先获取token?明明Power Apps、Power Automate里都不需要的啊&…

茶文化推广网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 网型站前台&#xff1a;网站个介绍、帮助信总、茶文化、茶叶分享、讨论信总 管理功能&#xff1a; 1、管理网站介绍、帮…

刚做外贸,先做平台好还是独立站好?

作为亚马逊这样的平台卖家&#xff0c;依托平台完善的第三方服务和流量红利&#xff0c;很容易将产品卖到海外。如今&#xff0c;随着平台要求越来越严格&#xff0c;管理政策越来越多变&#xff0c;用户需求也越来越多样化和苛刻&#xff0c;卖家在平台上经营店铺的一些问题正…

[附源码]Python计算机毕业设计SSM基于Web的摄影爱好者交流社区(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Clone使用

实现克隆接口:clone方法是默认是Object的方法 1)这个接口是一个标记性的接口(空接口)&#xff0c;他们内部都没有方法和属性&#xff0c;实现这个接口表示这个对象都可以进行克隆&#xff0c;我们调用Object对象的Object.clone()方法&#xff0c;如果没有实现Cloneable的类对象…

【云原生】k8s声明式资源管理

内容预知 1.资源配置清单的管理 1.1 查看资源配置清单 1.2 修改资源配置清单并应用 离线修改 在线修改 1.3 删除资源配置清单 2.自主编写资源清单 2.1 初步认识资源清单中svc的重要配置项 2.2 手动编写 svc资源配置 3.手动生成模板&#xff0c;再编写资源清单 &#x…

解决虚拟机IP地址无法获取和网络无法连接

首先看一下电脑的end33分配成功没有 ifconfig或者使用ip addr查询都可以 ip addr 目录 1.首先看看你的网络连接模式是不是NAT 2.去主机电脑服务查看这四个服务是否开启 3.查看虚拟机子网ip是否分配了 4.修改我们的网卡配置文件&#xff0c;使用下面命令进入文件 5.重启网…

jemeter 压测并生成报告

文章目录前言一、压测步骤1.1 创建jvm文件1.2 压测生成测试文件及html压测结果二、结果分析前言 jmeter&#xff1a;是Apche公司使用Java平台开发的一款测试工具。 一、压测步骤 1.1 创建jvm文件 添加测试计划 &#xff08;当打开jmeter默认有一个测试计划&#xff09;添加…

高并发下解决AtomicLong性能瓶颈的方案——LongAdder

一、 LongAdder简介 LongAdder类是JDK1.8新增的一个原子性操作类。上一节说到&#xff0c;AtomicLong通过CAS提供了非阻塞的原子性操作&#xff0c;相比用阻塞算法的synchronized来说性能已经得到了很大提升。在高并发下大量线程会同时竞争更新同一个原子变量&#xff0c;但由…

Qt 模型视图编程之重置模型数据

背景 Qt 模型视图编程中模型定义了标准接口对数据进行访问&#xff0c;可根据需求继承对应的抽象模型类来实现自定义的数据模型。一个基本的数据模型至少要实现以下虚函数&#xff1a; ①&#xff0e;rowCount&#xff1a;行数&#xff0c;返回要显示多少行&#xff1b; ②&…

软件工程---习题六

4. 图6.18给出的程序流程图代表一个非结构化的程序&#xff0c;问:   &#xff08;1&#xff09;为什么说它是非结构化的&#xff1f;   答&#xff1a;通常所说的结构化程序&#xff0c;是按照狭义的结构程序的定义衡量&#xff0c;符合定义规定的程序&#xff0c;每个代码…