首页 > 其他分享 >chatgpt生成的所有分析函数,感觉很好.

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

时间:2024-09-05 21:51:47浏览次数:8  
标签:salary 函数 OVER PARTITION RANK 生成 department chatgpt ORDER

 

 

好的,我会列出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(): 显示每个部门的最低工资。

这些函数允许我们在同一个部门内比较和分析员工的工资情况。需要我详细解释某个特定函数的结果吗?

 

 

标签:salary,函数,OVER,PARTITION,RANK,生成,department,chatgpt,ORDER
From: https://www.cnblogs.com/mengbin0546/p/18399290

相关文章

  • 【生日视频制作】毛笔书法字展示写字AE模板修改文字软件生成器教程特效素材【AE模板】
    生日视频制作教程毛笔书法字展示写字AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板替换工程怎么如何做的【生日视频制作】毛笔书法字展示写字AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修......
  • 生成式AI小抄
                            ......
  • 回归、分类、生成三大任务实现原理
    在机器学习与深度学习相关项目需求实现中,通常可以细分成很多个回归、分类、生成任务的实现,由这些任务组成一个完整的任务。下面分别介绍这三种任务回归:什么是回归?找到一个函数,通过输入的特征值X,输出一个连续的数值Y。回归任务的目标是预测连续值的输出。例如,预测房价、温度......
  • 构造函数的深浅拷贝问题详解
     构造函数的分类构造函数重载:构造函数可以通过不同的参数列表进行重载,这意味着可以有多个构造函数,每个构造函数有不同的参数。多参构造函数:通过传递多个参数来创建对象。无参(缺省)构造函数:不需要参数来创建对象。类型转换构造函数:使用不同类型的参数来创建对象。拷贝构造函数:......
  • hive日期函数的使用
    hive日期函数的使用hive日期函数如下:current_datecurrent_timestampdate_formatdate_adddate_subdatediffdaydayofmonthdayofweekfloor_dayfloor_hourfloor_minutefloor_monthfloor_quarterfloor_secondfloor_week......
  • 终于使用c++、结构体,函数实现简单数组元素的插入
    includeusingnamespacestd;//定义结构体structMyArray{intarr[100];//数组,假设最大长度为100intn;//数组当前元素数量};//输入函数voidscanf(MyArray&myArray,int&x,int&y){cin>>myArray.n;for(inti=0;i<myArray.n;i++){cin>>my......
  • 【springboot】使用swagger生成接口文档
    1.添加依赖<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version></dependency>       这里我老是添加不上......
  • 深度解析C++中函数重载与引用
    ......
  • 基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
    作者:计缘LLMChat应用大家应该都不陌生,这类应用也逐渐称为了我们日常的得力助手,如果只是个人使用,那么目前市面上有很多方案可以快速的构建出一个LLMChat应用,但是如果要用在企业生产级别的项目中,那对整体部署架构,使用组件的性能,健壮性,扩展性要求还是比较高的。本文带大家了解一......
  • send发送完成后测试select函数,每次都要等带20ms 实际数据在2ms内已经返回
    在发送完成后加入该函数  tcdrain(ctx->s); 使用该函数将会增加发送的时间,但是接收的时间会缩短,并未真正改善。Modbusslave工具基本上要等待40ms后才能返回,但是modbusascii返回的快一些,工具存在bug使用真实从站效果好一些      if(msg_type==1)p_......