SQLite3で値の合算を出力してみる

SQLite3で登録されているユーザーの任意のカラムの値の合算を出力してみます。

使用するデータはパイソンでgimeiでSQLite3のテストデータを用意してみるで作成したものを使いまして、今回はmoney(所持金)の合算を出力してみます。

※ sample.sqlite3のパスが/path/to/dir/sample.sqlite3で話を進めます。


# sample.sqlite3があるディレクトリまで移動
$ cd /path/to/dir
$ sqlite3 sample.sqlite3

最初にmoney(所持金)の値のみ出力してみます。

sqlite> SELECT money FROM users;
+-------+
| money |
+-------+
| 9168  |
| 4084  |
| 6384  |
| 1200  |
(途中省略)
+-------+

のような結果が出力されました。


今までは

SELECT * FROM テーブル名

のようにSELECTの後に * にしていましたが、今回は * の代わりに任意のカラムのみにしています。


この記述はクエリの実行により得られた結果のうち、money(所持金)のみ結果を出力するという意味になります。

カラムの指定を行うことで、クエリの実行時に余計なデータを取得しなくなりますので、データベースが大きくなる程、カラムの指定により結果の取得が速くなります。




money(所持金)の合計を計算して出力してみます。

sqlite> SELECT SUM(money) FROM users;
+--------------+
| SUM(money) |
+--------------+
| 3404760    |
+--------------+

のような結果が出力されました。

SUMという関数で、引数に集計したいカラムを指定する事で合計の計算が出来るようになります。

※ SQLite3でSUMと似たような機能でTOTAL関数があります。

SQLite SUM: Return The Sum value in A Set of Values


カラム名をSUM(money)から変更したい場合は、

sqlite> select SUM(money) AS sum from users LIMIT 10;
+---------+
|   sum   |
+---------+
| 3404760 |
+---------+
SUM(money) AS sum

のように関数の後にAS sumと指定することで、出力時のカラム名の変更を行う事ができます。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。