web-dev-qa-db-ja.com

複数のサブクエリをハイブする

Hive 0.9.0を使用していて、クエリを実行しようとしています。

`SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date   = b.date;`

ただし、「ループ(...)+が入力と一致しません...」というエラーが返されます。 Hiveは、Oracle DBと同様に、FROMで複数のサブクエリをサポートしますか?

6

複数 サブクエリ Hiveで許可されています。

私は以下のコードでテストしました、それは動作します。

    select * from (select id from test where id>10) a 
join (select id from test where id>20) b on a.id=b.id;

関連する解決策を提供できるように、正確なコードを投稿してください。

6

参加サブクエリは絶対にサポートされています。

重要な問題は、SELECT...FROMを使用することだと思います。

正しい構文はSELECT * FROMです。

SELECT a.id, b.user 
FROM 
(SELECT * FROM a_table) a 
JOIN (SELECT * FROM b_table) b ON a.date = b.date;
1
pensz

WHERE句を適用する前に完全なデカルト積を取得する場合は、代わりに次のようにします。

SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date   = b.date;

中央で「join」を使用する必要があります。

SELECT a.id, b.user FROM (SELECT...FROM a_table) a join (SELECT...FROM b_table) b WHERE a.date   = b.date;

上記は厳密モードでは許容されません。

0
www