問題:
列の値を合計したいとします。
例:
私たちのデータベースには、game 次の列にデータがあります:id 、player 、およびscore 。
| id | プレーヤー | スコア |
|---|---|---|
| 1 | ジョン | 134 |
| 2 | トム | 146 |
| 3 | ルーシー | 20 |
| 4 | トム | 118 |
| 5 | トム | 102 |
| 6 | ルーシー | 90 |
| 7 | ルーシー | 34 |
| 8 | ジョン | 122 |
すべてのプレイヤーが獲得した合計スコアを見つけましょう。
解決策:
SELECT SUM(score) as sum_score FROM game;
結果は次のとおりです。
| sum_score |
|---|
| 766 |
ディスカッション:
集計関数SUM 列の値の合計を計算するのに理想的です。この関数はSELECTで使用されます ステートメントであり、値を合計する列の名前を取ります。
SELECTで他の列を指定しない場合 ステートメントの場合、合計はテーブル内のすべてのレコードに対して計算されます。この例では、合計のみを選択し、他の列は選択しません。したがって、この例のクエリは、すべてのスコアの合計(766)を返します。
もちろん、GROUP BY句を使用し、合計と一緒にテーブルから各プレーヤーの名前を選択することで、各プレーヤーが獲得した合計スコアを計算することもできます。
解決策:
SELECT player, SUM(score) as sum_score FROM game GROUP BY player;
このクエリは、各プレーヤーの合計スコアを返します:
| player | スコア |
|---|---|
| ジョン | 256 |
| トム | 366 |
| ルーシー | 144 |