次の表があります。
╔══════════╦════════╦═══════╦═══════╗ ║ PlayerID ║ GameID ║ Stat1 ║ Stat2 ║ ╠══════════╬════════╬═══════╬═══════╣ ║ 1 ║ A ║ 2 ║ 1 ║ ║ 1 ║ B ║ 4 ║ 2 ║ ║ 1 ║ C ║ 6 ║ 5 ║ ║ 2 ║ A ║ 2 ║ 4 ║ ║ 2 ║ B ║ 2 ║ 6 ║ ║ 2 ║ C ║ 2 ║ 8 ║ ║ 2 ║ D ║ 4 ║ 2 ║ ║ 2 ║ E ║ 6 ║ 1 ║ ║ 3 ║ A ║ 5 ║ 9 ║ ║ 3 ║ G ║ 6 ║ 4 ║ ║ 3 ║ H ║ 4 ║ 2 ║ ║ 3 ║ N ║ 8 ║ 6 ║ ╚══════════╩════════╩═══════╩═══════╝
私が達成しようとしていることは次のとおりです。
╔══════════╦═══════════╦═══════════════════╦══════ ═════════════╗ ║ PlayerID ║ GameCount ║ 統計 1 平均 / ゲーム ║ 統計 2 平均 / ゲーム ║ ╠══════════╬═══════════╬═══════════════════╬══════ ═════════════╣ ║ 1 ║ 3 ║ 4 ║ 2.66 ║ ║ 2 ║ 5 ║ 3.2 ║ 4.2 ║ ║ 3 ║ 4 ║ 5.75 ║ 5.25 ║ ╚══════════╩═══════════╩═══════════════════╩══════ ═════════════╝
ゲーム数はプレーヤーごとにプレイされたゲームの合計数である必要があり、統計はゲームごとの平均である必要があります。基本的に、PlayerID 1 の計算は次のとおりです。
「統計 1 平均 / ゲーム」 = (2 + 4 + 6) / 3 「統計 2 平均 / ゲーム」 = (1 + 2 + 5) / 3
SUMS と COUNTS を組み合わせて同じクエリのさまざまなバリエーションを試しましたが、GameCount は正しくありません。私が試したことの例は以下のとおりです
SELECT PlayerID,
COUNT(GameID) AS GameCount,
SUM(Stat1) / COUNT(GameID) "Stat 1 Avg / Game",
SUM(Stat2) / COUNT(GameID) "Stat 2 Avg / Game"
FROM PublishedStats A
GROUP BY PlayerID
SELECT PlayerID,
COUNT(GameID) OVER (PARTITION BY PlayerID) AS GameCount,
SUM(Stat1) / COUNT(GameID) OVER (PARTITION BY PlayerID) "Stat 1 Avg / Game",
SUM(Stat2) / COUNT(GameID) OVER (PARTITION BY PlayerID) "Stat 2 Avg / Game",
FROM Stats
GROUP BY PlayerID, GameID