当前位置:   article > 正文

Hive SQL-DQL-Select查询语句用法详解_hivesql select

hivesql select

HQL Select用法详解

在这里插入图片描述

1.基础语法

在这里插入图片描述

(1)select_exp

在这里插入图片描述

(2)ALL、DISTINCT

在这里插入图片描述

(3)WHERE

在这里插入图片描述
在这里插入图片描述

(4)分区查询、分区裁剪

在这里插入图片描述

(5)GROUP BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)HAVING

在这里插入图片描述
在这里插入图片描述

(7)LIMIT

在这里插入图片描述

在这里插入图片描述

(8)执行顺序

在这里插入图片描述

2.高阶语法

在这里插入图片描述

(1)ORDER BY

在这里插入图片描述

在这里插入图片描述

(2)CLUSTER BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)DISTRIBUTE BY + SORT BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)UNION联合查询

在 Hive 中,可以使用 UNION 操作符执行联合查询,将多个查询的结果合并为一个结果集。UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并去除重复的行。
在这里插入图片描述

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
  • 1
  • 2
  • 3
  • 4
  • 5

在这个语法中,SELECT 语句必须具有相同数量和类型的列,它们的顺序也必须相同。UNION 将两个 SELECT 语句的结果集合并,并自动去除重复的行。

如果需要保留重复的行,可以使用 UNION ALL 操作符:

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;
  • 1
  • 2
  • 3
  • 4
  • 5

注意事项和限制:

  1. 列数和数据类型必须匹配: 在每个 SELECT 子句中,列数和数据类型必须匹配。如果不匹配,Hive 将会抛出错误。

  2. 列顺序必须相同: 虽然不同的 SELECT 子句可以选择不同的列,但它们的顺序必须相同。否则,Hive 会抛出错误。

  3. 列名可能取决于第一个 SELECT 语句: 在某些情况下,联合查询的结果集中的列名可能取决于第一个 SELECT 语句中的列名。因此,最好保持所有 SELECT 语句中列名的一致性。

  4. 重复行处理: UNION 默认会去除重复的行,而 UNION ALL 会保留所有行,包括重复的行。

  5. 性能注意: 联合查询可能会对性能产生影响,特别是在处理大量数据时。在可能的情况下,应尽量减少联合查询的数量,或者使用其他性能更好的方法。

在这里插入图片描述

(5)子查询

在这里插入图片描述
在这里插入图片描述

(6)CTE表达式

在这里插入图片描述
CTE(Common Table Expression,公共表达式)是 SQL 中一种可用于创建临时命名结果集的结构。它们通常与递归查询一起使用,但也可以在常规查询中提高可读性和可维护性。

在 Hive SQL 中,CTE 使用 WITH 关键字来定义,它允许你为一个查询定义一个临时的命名结果集,然后在主查询中引用它。这对于分解复杂的查询逻辑、避免重复计算以及提高查询可读性都非常有用。

以下是一个示例,演示了如何在 Hive SQL 中使用 CTE:

假设你有一个表 employees,包含员工的 ID、姓名和工资信息。现在,假设你想要找到工资高于平均工资的员工。你可以使用 CTE 来计算平均工资,并在主查询中引用它:

WITH avg_salary AS (
    SELECT AVG(salary) AS avg_salary
    FROM employees
)
SELECT emp_id, emp_name, salary
FROM employees
WHERE salary > (SELECT avg_salary FROM avg_salary);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在上面的示例中,avg_salary 是一个 CTE,它计算了 employees 表中所有员工的平均工资。然后,在主查询中,我们使用了这个 CTE 来过滤出工资高于平均工资的员工。

使用 CTE 可以使查询更加模块化和易读,同时避免了重复计算。它们还可以帮助分解复杂的查询逻辑,使查询更易于理解和维护。需要注意的是,虽然 CTE 在 Hive SQL 中非常有用,但并不是所有的数据库都支持这个功能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/909727
推荐阅读
相关标签
  

闽ICP备14008679号