chatgpt生成的所有分析函数,感觉很好.

news/2024/9/21 16:47:49/文章来源:https://www.cnblogs.com/mengbin0546/p/18399290

 

 

好的,我会列出Hive的主要分析函数,然后创建一个表并插入10条数据来演示这些函数的效果。

Hive的主要分析函数:

  1. ROW_NUMBER()
  2. RANK()
  3. DENSE_RANK()
  4. CUME_DIST()
  5. PERCENT_RANK()
  6. NTILE()
  7. LAG()
  8. LEAD()
  9. FIRST_VALUE()
  10. LAST_VALUE()

现在,让我们创建一个表并插入数据:

 

-- 创建表
CREATE TABLE employees (id INT,name STRING,department STRING,salary INT
);-- 插入数据
INSERT INTO employees VALUES (1, 'Alice', 'HR', 50000),(2, 'Bob', 'Sales', 60000),(3, 'Charlie', 'Marketing', 55000),(4, 'David', 'IT', 65000),(5, 'Eve', 'HR', 52000),(6, 'Frank', 'Sales', 61000),(7, 'Grace', 'Marketing', 58000),(8, 'Henry', 'IT', 67000),(9, 'Ivy', 'HR', 53000),(10, 'Jack', 'Sales', 62000);-- 使用分析函数的查询
SELECT id,name,department,salary,ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) as row_num,RANK() OVER (PARTITION BY department ORDER BY salary DESC) as rank,DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC) as dense_rank,CUME_DIST() OVER (PARTITION BY department ORDER BY salary DESC) as cume_dist,PERCENT_RANK() OVER (PARTITION BY department ORDER BY salary DESC) as percent_rank,NTILE(2) OVER (PARTITION BY department ORDER BY salary DESC) as ntile,LAG(salary) OVER (PARTITION BY department ORDER BY salary DESC) as prev_salary,LEAD(salary) OVER (PARTITION BY department ORDER BY salary DESC) as next_salary,FIRST_VALUE(salary) OVER (PARTITION BY department ORDER BY salary DESC) as highest_salary,LAST_VALUE(salary) OVER (PARTITION BY department ORDER BY salary DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as lowest_salary
FROM employees;

 

当然,我会为您展示查询结果。请注意,这是一个模拟的结果,因为我无法实际运行Hive查询。但这个结果准确反映了各个分析函数的预期行为。```
id | name    | department | salary | row_num | rank | dense_rank | cume_dist | percent_rank | ntile | prev_salary | next_salary | highest_salary | lowest_salary
---+---------+------------+--------+---------+------+------------+-----------+--------------+-------+-------------+-------------+----------------+--------------
1  | Alice   | HR         | 50000  | 3       | 3    | 3          | 1.0       | 1.0          | 2     | 52000       | NULL        | 53000          | 50000
5  | Eve     | HR         | 52000  | 2       | 2    | 2          | 0.6667    | 0.5          | 1     | 53000       | 50000       | 53000          | 50000
9  | Ivy     | HR         | 53000  | 1       | 1    | 1          | 0.3333    | 0.0          | 1     | NULL        | 52000       | 53000          | 50000
---+---------+------------+--------+---------+------+------------+-----------+--------------+-------+-------------+-------------+----------------+--------------
8  | Henry   | IT         | 67000  | 1       | 1    | 1          | 0.5       | 0.0          | 1     | NULL        | 65000       | 67000          | 65000
4  | David   | IT         | 65000  | 2       | 2    | 2          | 1.0       | 1.0          | 2     | 67000       | NULL        | 67000          | 65000
---+---------+------------+--------+---------+------+------------+-----------+--------------+-------+-------------+-------------+----------------+--------------
3  | Charlie | Marketing  | 55000  | 2       | 2    | 2          | 1.0       | 1.0          | 2     | 58000       | NULL        | 58000          | 55000
7  | Grace   | Marketing  | 58000  | 1       | 1    | 1          | 0.5       | 0.0          | 1     | NULL        | 55000       | 58000          | 55000
---+---------+------------+--------+---------+------+------------+-----------+--------------+-------+-------------+-------------+----------------+--------------
10 | Jack    | Sales      | 62000  | 1       | 1    | 1          | 0.3333    | 0.0          | 1     | NULL        | 61000       | 62000          | 60000
6  | Frank   | Sales      | 61000  | 2       | 2    | 2          | 0.6667    | 0.5          | 1     | 62000       | 60000       | 62000          | 60000
2  | Bob     | Sales      | 60000  | 3       | 3    | 3          | 1.0       | 1.0          | 2     | 61000       | NULL        | 62000          | 60000
```这个结果展示了每个分析函数的效果:1. ROW_NUMBER(): 在每个部门内按工资降序给出唯一的行号。
2. RANK(): 类似ROW_NUMBER,但相同工资会得到相同排名,排名可能不连续。
3. DENSE_RANK(): 类似RANK,但排名总是连续的。
4. CUME_DIST(): 计算累积分布,值域为0到1。
5. PERCENT_RANK(): 计算百分比排名,值域为0到1。
6. NTILE(2): 将每个部门的员工分为2组。
7. LAG(): 显示同一部门中工资排名前一位员工的工资。
8. LEAD(): 显示同一部门中工资排名后一位员工的工资。
9. FIRST_VALUE(): 显示每个部门的最高工资。
10. LAST_VALUE(): 显示每个部门的最低工资。这些函数允许我们在同一个部门内比较和分析员工的工资情况。需要我详细解释某个特定函数的结果吗?

 

 

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

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

相关文章

大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要大规模MIMO(Multiple-Input Multiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百个),而用户…

docker部署mysql8主从

一、拉取mysql镜像docker pull mysql 二、创建容器# 主库docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql# 从库 docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql 三、配置主库[mysqld]## 同一…

IDGenRec论文阅读笔记

IDGenRec: LLM-RecSys Alignment with Textual ID Learning论文阅读笔记 Abstract ​ 为了使 LLM 与推荐需求更好地结合,我们提出了 IDGenRec,使用人类语言标记将每个项目表示为唯一、简洁、语义丰富、平台无关的文本 ID。这是通过与基于 LLM 的推荐器一起训练文本 ID 生成器…

基于鱼群算法的散热片形状优化matlab仿真

1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度…

Transformer: Attention is all you need

Transformer于2017年提出,最开始应用于NLP领域,随着Transformer的快速发展,在视觉领域中也越来越多的论文或应用用到了Transformer,这里记录一下自己学习的一些知识点。 PDF: 《Attention Is All You Need》 Code: attention-is-all-you-need-pytorch 一、前置知识 1.1 注…

Falcon Mamba: 首个高效的无注意力机制 7B 模型

Falcon Mamba 是由阿布扎比的 Technology Innovation Institute (TII) 开发并基于 TII Falcon Mamba 7B License 1.0 的开放获取模型。该模型是开放获取的,所以任何人都可以在 Hugging Face 生态系统中 这里 使用它进行研究或应用。 在这篇博客中,我们将深入模型的设计决策、…

基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真

1.程序功能描述 奇异谱分析(Singular Spectrum Analysis,简称SSA)是一种强大的非线性和非参数时间序列分析方法。该方法基于奇异值分解(SVD)和轨迹矩阵的概念,用于提取时间序列中的趋势、周期性和噪声成分。在本课题中,通过SSA算法,从强干扰序列中提取其趋势线。…

英伟达硬解码错误汇总

1. 解码器报报CUDA_ERROR_NO_DEVICE驱动问题,确保驱动与CUDA版本兼容。CUDA是区分操作系统的。

优先级队列PriorityQueue(图文并茂)

介绍 优先级队列的作用是能保证每次取出的元素都是队列中权值最小(或最大)的。这里元素大小的评判可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通过堆实现,具体说…

DVPP问题汇总

1. aclrtSetDevice 使用不当导致内存泄露问题 对于Atlas 推理系列产品(Ascend 310P处理器),调用本接口会隐式创建默认Context,在标准形态下,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。 参考网页:API参考-aclrtSetDevice此接口需与aclrtRes…

第十二讲 为什么表数据删掉一半,表文件大小不变?

第十二讲: 为什么表数据删掉一半,表文件大小不变? 简概:问题:表删掉了一半的数据,表文件的大小还是没变? ​ 经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? InnoDB 的表回收 ​ 那么今天,我就和你聊聊数据…

动手学习深度学习

动手学习深度学习 特点:数学原理推理+代码实现 CH1 引言 引言: 学习到一种数学的直觉 ​​ 机器学习路线: ​​ 常见结构: ​​ ‍ 为什么要有机器学习: 机器学习是为了让机器学习到人类学不到的知识,人类学习的能力是有限的,只能通过简单的几种形式如语言,视频等来进行…