SQLで最大最・最小値・平均値を求めてみよう

SQLで最大値・最小値・平均値を求めてみましょう。テーブルを作成し、データを挿入し、SQLで最大値・最小値・平均値を求めています。

データベースを作成

データベースがない場合はcreate database文でデータベースを作成しましょう。

MariaDB [none]> create database kimotosystem;

MariaDB [kimotosystem]> use kimotosystem;

MariaDB [kimotosystem]> show tables;
+-----------------+
| Tables_in_kimotosystem |
+-----------------+
| book            |
+-----------------+
1 row in set (0.01 sec)

テーブルの作成

create table文を使ってテーブルを作成します。テーブル名はbookです。IDと書名と価格のデータです。

MariaDB [kimotosystem]> 
MariaDB [kimotosystem]> 
MariaDB [kimotosystem]> create table kimotosystem.book(id int AUTO_INCREMENT PRIMARY KEY,name varchar(10), price int);
Query OK, 0 rows affected (0.01 sec)

MariaDB [itodb]> desc book;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10) | YES  |     | NULL    |                |
| price | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

データの挿入

書籍のデータをSQLのinsert文を使って挿入します。

MariaDB [kimotosystem]> insert into kimotosystem.book (name,price) values ('book A',800),('book B', 1000),('book C', 1500),('book D', 2500),('book E',2800),('book F',3500),('book G',4000);
Query OK, 7 rows affected (0.01 sec)
Records: 7  Duplicates: 0  Warnings: 0

MariaDB [kimotosystem]> select * from kimotosystem.book;
+----+--------+-------+
| id | name   | price |
+----+--------+-------+
|  1 | book A |   800 |
|  2 | book B |  1000 |
|  3 | book C |  1500 |
|  4 | book D |  2500 |
|  5 | book E |  2800 |
|  6 | book F |  3500 |
|  7 | book G |  4000 |
+----+--------+-------+
7 rows in set (0.01 sec)

SQLで最大値・最小値・平均値を求める

select文と集合演算を使って、最大値・最小値・平均値を求めます。

MariaDB [kimotosystem]> select max(price), min(price),avg(price) from kimotosystem.book;
+------------+------------+------------+
| max(price) | min(price) | avg(price) |
+------------+------------+------------+
|       4000 |        800 |  2300.0000 |
+------------+------------+------------+
1 row in set (0.00 sec)
コンテンツ