2016-09-20 4 views
0

SQLに比較的新しく、人々が出席したイベントの数の最小値、平均値、最大値を返そうとしています。データをグループ化してエイリアスしようとするとエラーが発生する

本質的に、allと題された表があります。これは、eventsビューを生成しています。ビューeventsには、今年のカラムideventが含まれています。私はイベントの数を人によってグループ化し、この選択にevent count,というラベルを付けることを試みていましたが、何らかの理由で解析エラーが連続して発生しています。 (これはHIVEで行われています)

--VIEW CREATION: 
CREATE VIEW events 
AS 
SELECT all.id, all.event 
FROM all 
WHERE all.year = 2016; 

--ATTEMPTED CALCULATION WHICH IS FAILING 
SELECT avg(event_count), min(event_count), max(event_count) 
FROM (SELECT COUNT(events.event), events.id FROM events 
GROUP BY events.id) AS event_count; 
+1

クエリは意味をなさない。 。 。列のエイリアスとテーブルエイリアスを混乱させ、他のテーブルでランダムに混在させます。 –

+0

Gordonありがとう、私は間違ってGROUP BYに間違ったID列を入れてしまったことに気づいた。訂正されましたが、まだ失敗しています。基本的には、「id」と「イベント」の列を「すべて」から引き出して、ビューに配置し、1人あたりの「イベント」の数でグループ化した後の平均、平均、最大を計算しようとしています。 – mongolol

答えて

1

これはこれでいいですか?

私がコメントで言及したように、あなたはテーブルエイリアスとカラムエイリアスを混同しています。また、idというフィールドがテーブル内で繰り返されることは奇妙に思えます。それは厄介なデータ構造のように思えます。

+0

これはまさに私が探していたものです。ありがとうございました。私はエイリアシングを使用していて、その要点をあまり得ていない例から作業してきました。 – mongolol

関連する問題