zoukankan      html  css  js  c++  java
  • [HIve

    Subqueries in the FROM Clause

    SELECT ... FROM (subquery) name ...
    SELECT ... FROM (subquery) AS name ...   (Note: Only valid starting with Hive 0.13.0)

    Hive supports subqueries only in the FROM clause (through Hive 0.12). The subquery has to be given a name because every table in a FROM clause must have a name. Columns in the subquery select list must have unique names. The columns in the subquery select list are available in the outer query just like columns of a table. The subquery can also be a query expression with UNION. Hive supports arbitrary levels of subqueries.

    The optional keyword "AS" can be included before the subquery name in Hive 0.13.0 and later versions (HIVE-6519).

    Example with simple subquery:

    SELECT col
    FROM (
      SELECT a+b AS col
      FROM t1
    ) t2

    Example with subquery containing a UNION ALL:

    SELECT t3.col
    FROM (
      SELECT a+b AS col
      FROM t1
      UNION ALL
      SELECT c+d AS col
      FROM t2
    ) t3

    Subqueries in the WHERE Clause

    As of Hive 0.13 some types of subqueries are supported in the WHERE clause. Those are queries where the result of the query can be treated as a constant for IN and NOT IN statements (called uncorrelated subqueries because the subquery does not reference columns from the parent query):

    SELECT *
    FROM A
    WHERE A.a IN (SELECT foo FROM B);

    The other supported types are EXISTS and NOT EXISTS subqueries:

    SELECT A
    FROM T1
    WHERE EXISTS (SELECT FROM T2 WHERE T1.X = T2.Y)

    There are a few limitations:

    • These subqueries are only supported on the right-hand side of an expression.
    • IN/NOT IN subqueries may only select a single column.
    • EXISTS/NOT EXISTS must have one or more correlated predicates.
    • References to the parent query are only supported in the WHERE clause of the subquery.
    谨言慎行,专注思考 , 工作与生活同乐
  • 相关阅读:
    系统边界确定
    用例分析技术:确定系统边界
    系统边界的定义
    【转】读《程序员修炼之道》
    项目管理之需求基线管理
    字符串流sstream[part3/使用字符串流进行安全的类型转换]
    字符串流sstream[part2/使用同一个字符串流反复读写数据]
    字符串流sstream[part1/基本知识]
    文件操作的openmode
    文件操作的一些函数
  • 原文地址:https://www.cnblogs.com/tmeily/p/4249872.html
Copyright © 2011-2022 走看看