2016-07-07 5 views
0

NBAデータをスクラップするアプリをビルドしています(主に自分の校正ツールと学習ツール用)。私はpostgresqlを最初から使い始めました。なぜなら、もし私がそれをホストするつもりなら、それはもっと意味があるからです。データベーススキーマは、私が望む通りに設定されていますhere数字がグループ化されたときの平均を計算するには

参加者インスタンスはTEAMコンセプトに基づいています 統計インスタンスはPLAYERコンセプトに基づいているため、Statisticの多くのインスタンスが参加者の「合計」を構成します。

次のクエリ:(psqlのターミナルアプリで)

Select SUM(steals) from statistics 
INNER JOIN participants on statistics.participant_id = participants.id 
INNER JOIN teams on participants.team_id = teams.id 
WHERE teams.id = 15 
GROUP BY statistics.participant_id; 

利回り私はこれらの17行に基づいて平均値を計算するために、SQLクエリを書くにはどうすればよい

sum 
----- 
    8 
    7 
    5 
    7 
    6 
    7 
    10 
    6 
    7 
    6 
    7 
    5 
    9 
    11 
    4 
    7 
    8 

(クエリを簡略化するために編集して1つの質問のみを入力してください)

+0

@MageeWorldあなたはあなたが望むことをやることができます。これを試してみて、 'AVG()'のような 'Aggrigate関数'を見てください。 –

+0

'SELECT ... FROM(SELECT ... GROUP BY ...)' GROUP BY ... ' –

+0

@CoderofCode集計関数について知っていますが(私の経験の大部分はmysqlにありますが)集計クエリを平均クエリ内にラップする方法を知らない – MageeWorld

答えて

0

次のクエリを使用してクエリをラップする

SELECT sum, AVG(sum) 
FROM (
    -- your query here 
) x 

一部のシステムでは、外部クエリを必要としないウィンドウ機能を使用することもできます。その構文は次のようになります

AVG(sum) OVER() as avg 

あなたが探している平均値は、ここでは使用できないグループ化の結果であるためです。

+0

あなたが私に与えたものは、正しい方向に私を指摘しましたが、私の必要に応じて - これがうまくいきました。* AVG(sum)FROM(my query)をsumとして選択します。 – MageeWorld

+0

@MageeWorld 'SELECT AVG(sum)AS sum FROM(stuff);'は標準的な書き方ですが、それはうまくいくようです。 – Hogan

関連する問題