首页 > 其他分享 >Hive中常用query--关联/聚合/去重/排序举例

Hive中常用query--关联/聚合/去重/排序举例

时间:2024-05-30 10:28:57浏览次数:13  
标签:salary -- employees Hive 查询 department query id

在Hive中,可以使用各种查询来执行关联(JOINs)、聚合(Aggregations)、去重(Distinct)和排序(Sorting)操作。以下是一些常见的查询示例:

关联(JOIN):

在Hive中执行关联操作通常是为了将两个或多个表中相关的行连接起来。

SELECT e.name, e.salary, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;

这个查询将 employees 表和 departments 表进行关联,通过 department_id 字段来匹配相关行,并选择员工的姓名、薪水以及所在部门的名称。

聚合(Aggregations):

聚合操作通常用于计算总和、平均值、计数等。

SELECT department_id, COUNT(*) as num_employees, AVG(salary) as avg_salary
FROM employees
GROUP BY department_id;

这个查询按 department_id 对员工进行分组,并计算每个部门的员工数量和平均薪水。

去重(Distinct):

去重操作用于查询表中唯一的行。

SELECT DISTINCT department_id
FROM employees;

这个查询列出了 employees 表中所有独特的 department_id

排序(Sorting):

排序操作用于根据一个或多个列的值对结果进行排序。

SELECT name, salary
FROM employees
ORDER BY salary DESC;

这个查询选择所有员工的姓名和薪水,并按薪水降序排列。如果想要升序排列,可以使用 ASC 或省略排序方向(默认为升序)。

综合示例:

以下是一个更复杂的查询,它结合了关联、聚合、去重和排序操作:

SELECT d.department_name, COUNT(DISTINCT e.id) as num_employees, AVG(e.salary) as avg_salary
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name
ORDER BY num_employees DESC;

这个查询显示了每个部门的名称、员工数量和平均薪水,并按员工数量降序排列。这里使用了 COUNT(DISTINCT e.id) 来确保去重计数员工的数量。

请注意,Hive查询的语法和行为可能受到你使用的Hive版本和配置的影响。在执行实际查询之前,请确保你的Hive环境已经正确设置。

标签:salary,--,employees,Hive,查询,department,query,id
From: https://blog.csdn.net/m0_68989328/article/details/139317065

相关文章

  • 【包邮送书】你好!C语言
    欢迎关注博主Mindtechnist或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号《机器和智能》回复关键词“python项目实战......
  • 新一代爬虫平台!不写代码即可完成爬虫...
    大家好,我是Java陈序员。今天,给大家介绍一个优秀的爬虫平台,无需编写代码,只要通过简单的流程配置,即可实现爬虫。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍spider-flow——新一代爬虫平台,以流程图的方式定义爬虫,是......
  • C#解析json的几种方式
    json格式的数据是javascript原生的一种数据格式,比xml更简洁。它有两种形式:json对象和json对象数组。 在此之前,有必要解释几个基本概念:json字符串,就是string,它一定是由双引号包起来的,如"{'name':'jerry'}"。这是一个string,尽管去掉双引号后它就是一个json对象。json对象,就是以......
  • cocos 无法设置Node layer属性
    升级到3.83之后突然无法设置Nodelayer属性,编译器打开之后无法保存1.删除temp,library文件夹后重新打开,(仍无法解决。)。原以为升级之后问他资源没有升级导致2.为什么打开prefab之后又恢复layer属性??分析原因:cocoseditor里的属性是从全局变量里读.在浏览器环境中cc是一个全......
  • css23 CSS Links, Cursors
    https://www.w3schools.com/css/css_link.asp CSSLinks  WithCSS,linkscanbestyledinmanydifferentways.StylingLinksLinkscanbestyledwithanyCSSproperty(e.g.color,font-family,background,etc.).Examplea{  color:hotpink;}&l......
  • mac,linux 查看文件编码
    查看文件编码可以通过以下几种方式:在类unix编程时,在读取文本的时候会遇到文本的编码问题,这时候就要查看文件内容的编码了,下面是查看编码的几种方式1.在Vim中可以直接查看文件编码:setfileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim......
  • Linux 内核启动流程
    链接脚本vmlinux.lds示例代码36.1.1vmlinux.lds链接脚本492OUTPUT_ARCH(arm)493ENTRY(stext)494jiffies=jiffies_64;495SECTIONS496{497/*498*XXX:Thelinkerdoesnotdefinehowoutputsectionsare499*assignedtoinputsectionswhentherearem......
  • 如何使用前端表格控件实现多数据源整合?
    前言作为表格产品的典型应用场景之一,几乎所有的行业都会存在类Excel报表开发这样的应用场景,而在这些应用场景中,经常会遇见下面的这些痛点:报表数据往往来自多个不同的数据源,需要报表系统能够同时连接多个数据源,并融合不同的数据格式实际的报表中需要对数据结果进行逻辑计算,例......
  • 深入探讨Function Calling:在Semantic Kernel中的应用实践
    引言上一章我们熟悉了OpenAI的functioncalling的执行原理,这一章节我们讲解一下functioncalling在SemanticKernel的应用。在OpenAIPromptExecutionSettings跟LLM交互过程中,ToolCallBehavior的属性之前我们的章节有介绍过ToolCallBehavior:属性用于获取或设置如何......
  • 深入探索令牌桶限流的原理与实践
    在当今的互联网时代,随着用户数量和请求量的不断增加,系统的性能和稳定性面临着巨大的挑战。限流算法作为保障系统稳定性的重要手段之一,被广泛应用于各种服务和应用中。限流的核心目的是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓......