1
CREATE EXTERNAL TABLE old_events
(day STRING, foo STRING, count STRING, internal_id STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION '${INPUT}';;

CREATE EXTERNAL TABLE events
(internal_id, foo STRING, count STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION '${OUTPUT}';;

INSERT OVERWRITE TABLE events
SELECT internal_id, e2.foo, count(e1.foo)
FROM old_events e2
LEFT OUTER JOIN old_events e1
ON e1.foo = e2.foo
WHERE e1.event = 'event1'
AND e2.event = 'event2'
GROUP BY e2.foo;

internal_id が select 句の一部である場合、次のエラーが発生します FAILED: Error in Semantic analysis: line 5:8 Expression Not In Group By Key internal_id

これを回避するために、GROUP BY 列に internal_id を追加したところ、次のエラーが発生しました。失敗: セマンティック分析のエラー: 列 internal_id が複数のテーブル/サブクエリで見つかりました

この問題を解決するにはどうすればよいですか?

4

1 に答える 1