次の表を返すクエリがあります。私が作成した最後のコラムは、最後の列にPoints_Per_Game
という数字を得るために、をGames_played
で割ります。このクエリはなぜ私に不正な除算を与えていますか?
これはテーブルここ
+----------+--------------+--------+-----------------+
| PlayerID | Games_Played | Points | Points_Per_Game |
+----------+--------------+--------+-----------------+
| 16 | 2 | 3 | 0.6000 |
| 20 | 2 | 3 | 0.6000 |
| 10 | 2 | 3 | 0.3750 |
| 18 | 2 | 3 | 0.3750 |
| 5 | 2 | 3 | 0.3750 |
| 9 | 2 | 3 | 0.3750 |
+----------+--------------+--------+-----------------+
6 rows in set (0.00 sec)
では、クエリ
SELECT Players.PlayerID, COUNT(Games.Points) AS Games_Played,
SUM(Games.Points) AS Points, SUM(Points/Games_Played) AS Points_Per_Game
FROM Teams, Players, Games
WHERE
Teams.PlayerID=Players.PlayerID
AND
Games.Game=Teams.Game
AND
Games.Team=Teams.Team
AND
Games.GameDate=Teams.GameDate
AND
(
CONCAT(Games.Game, '_', Games.GameDate)=
ANY(SELECT CONCAT(Teams.Game, '_', Teams.GameDate)
FROM Teams WHERE PlayerID='4')
AND NOT
CONCAT(Games.Game, '_', Games.Team, '_', Games.GameDate)=
ANY(SELECT CONCAT(Teams.Game, '_', Teams.Team, '_', Teams.GameDate)
FROM Teams WHERE PlayerID='4')
)
GROUP BY Teams.PlayerID
ORDER By Points_per_Game DESC, Points DESC, Games_Played;
は私がすることによってグループ化し、参照されている列を加算していたという事実に何かありますか?
私はあなたのGames_Playedが正しいか、せいぜい誤解を招くませんでした....
SELECT Players.PlayerID, COUNT(Games.Game) AS Games_Played,
SUM(Games.Points) AS Points, SUM(Games.Points)/COUNT(Games.Game) AS Points_Per_Game
FROM Teams, Players, Games
これは試してみてください1.5
http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry
再生されたゲームは正しく表示されません – AntDC
@Strawberry私は間違いなくボードに提案を取るでしょう。 – denski