問題:
列の値を合計したいとします。
例:
私たちのデータベースには、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 |