Java code tableHiveCell
とtableHiveWiFi
から2つのテーブルを作成しました。
次のSQLコマンドを実行しようとすると:
select count(UEs.cnc) as 'Active UEs'
^
from
(select distinct cnc from tableHiveCell wifi
union
select distinct cnc from tableHiveCell cell)
as UEs;
エラーが発生します:
Java.sql.SQLException:
Query returned non-zero code: 11,
cause: FAILED: Parse Error: line 1:22 mismatched input 'as' expecting FROM near ')' in from clause
at org.Apache.hadoop.Hive.jdbc.HiveStatement.executeQuery(HiveStatement.Java:189).
私は何か見落としてますか?
[編集1]
私は試した:
select count(UEs.cnc) as 'Active UEs'
^
from
(select distinct cnc from tableHiveCell wifi)
union
(select distinct cnc from tableHiveCell cell)
as UEs;
同じエラー
[編集2]
私は試した:
select count(UEs.cnc) as Active_UEs
from (select distinct cnc from tableHiveCell wifi
union ALL
select distinct cnc from tableHiveCell cell) as UEs;
^
同じエラーが発生しますが、最後にas
:
line 1:142 mismatched input 'as' expecting Identifier near ')' in subquery source
回答フォームでリクエストされたとおり:Hadoopは、サブクエリのAS
キーワードを介したエイリアスに問題があるようで、AS
キーワードなしでエイリアスを簡単に割り当てることができます。
例はここにあります: https://www.inkling.com/read/hadoop-definitive-guide-tom-white-3rd/chapter-12/querying-data
そして、将来の訪問者のために引用されています(サブクエリのmt
エイリアスを参照):
SELECT station, year, AVG(max_temperature)
FROM (
SELECT station, year, MAX(temperature) AS max_temperature
FROM records2
WHERE temperature != 9999
AND (quality = 0 OR quality = 1 OR quality = 4 OR quality = 5 OR quality = 9)
GROUP BY station, year
) mt
GROUP BY station, year;