1 つの試合でバスケットボールの 3_point_attempts と 3_points_scored の数を記録するテーブルを作成しました。
私がやりたいのは、3_point_attempts*1.5 と 3_point_scored*3 の値を倍増することですが、そうすると、「単一グループのグループ関数ではありません」というエラーが表示されます。
このdbfiddleを確認してください
誰かが私がここで間違っていることを教えてもらえますか?
1 つの試合でバスケットボールの 3_point_attempts と 3_points_scored の数を記録するテーブルを作成しました。
私がやりたいのは、3_point_attempts*1.5 と 3_point_scored*3 の値を倍増することですが、そうすると、「単一グループのグループ関数ではありません」というエラーが表示されます。
このdbfiddleを確認してください
誰かが私がここで間違っていることを教えてもらえますか?
sum() over()
結果を取得するために使用できます。
SELECT performanceid,
matchid,
teamid,
twopattempts,
(SUM(twopattempts) over(partition by teamid))*2 AS SumPoints
FROM Performance
WHERE TeamID = 1
SQL FiddlewithDemoを参照してください
3ポイントの試みを追加する場合は、次を使用できます。
SELECT performanceid,
matchid,
teamid,
twopattempts,
SUM(twopattempts) over(partition by teamid)*2 AS SumPoints,
sum(THREEPATTEMPTS) over(partition by teamid)*1.5 as ThreePointAttempts,
sum(THREEPSCORED) over(partition by teamid)*3 as ThreePointScored
FROM Performance
WHERE TeamID = 1
SQL FiddlewithDemoを参照してください
上記は、返された各行の合計値を示します。とに基づいてそれが必要matchid
なteamid
場合は、次を使用できます。
SELECT MatchID,
teamid,
SUM(twopattempts)*2 AS SumPoints,
sum(THREEPATTEMPTS)*1.5 as ThreePointAttempts,
sum(THREEPSCORED)*3 as ThreePointScored
FROM Performance
WHERE TeamID = 1
group by teamid, MatchID
SQL FiddlewithDemoを参照してください
乗算を直接実行します。
SELECT performanceid, matchid, teamid, twopattempts, twopattempts*2 AS SumPoints,
3_point_attempts*1.5, 3_point_scored*3
FROM Performance
WHERE TeamID = 1
group by
行を集約しようとしている場合にのみ必要です。例えば:
select teamid, sum(3_point_attempts*1.5), sum(3_point_scored*3_
from Performance
group by TeamID