簡體   English   中英

hive 中是否有等價的 sql WITH 子句?

[英]Is there sql WITH clause equivalent in hive?

未能在規范中找到答案。

所以,我想知道:我可以在蜂巢中做這樣的事情嗎?

insert into table my_table
with a as
(
    select *
        from ...
        where ...  
),

b as
(
    select *
        from ...
        where ...  
)
select 
    a.a, 
    a.b, 
    a.c, 
    b.a, 
    b.b, 
    b.c 
from a join b on (a.a=b.a);

從版本0.13.0開始,Hive 中可用。 此處記錄了用法

我想你總是可以使用子查詢:

insert into table my_table
select 
    a.a, 
    a.b, 
    a.c, 
    b.a, 
    b.b, 
    b.c 
from
(
    select *
        from ...
        where ...  
) a
join 
(
    select *
        from ...
        where ...  
) b
on a.a = b.a;

Hadoop Hive WITH 子句語法和示例借助 Hive WITH 子句,您可以在同一查詢構造中重用查詢結果。 您還可以使用WITH子句改進 Hadoop Hive 查詢。 您可以通過將復雜、復雜的重復代碼移動到 WITH 子句並引用在 SELECT 語句中創建的邏輯表來簡化查詢。


帶有 SELECT 語句的 Hive WITH 子句示例

WITH t1 as (SELECT 1), 
t2 as (SELECT 2),
t3 as (SELECT 3)
SELECT * from t1 
UNION ALL
SELECT * from t2
UNION ALL 
SELECT * from t3;

INSERT 語句中的 Hive WITH 子句您可以在向表中插入數據時使用 WITH 子句。 例如:

WITH t11 as (SELECT 10),
t12 as (SELECT 20),
t13 as (SELECT 3) 
INSERT INTO t1 
SELECT * from t11 
UNION ALL 
SELECT * from t12 
UNION ALL 
SELECT * from t13;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM