抽出、ソート、結合、制限件数制限
- 2 つのレベルの分析を 1 回のクエリで実行可能〔WITH ROLLUP〕
- 抽出レコードの数の制限〔LIMIT〕
- このページで使用しているサンプルデータ
2 つのレベルの分析を 1 回のクエリで実行可能
WITH ROLLUP
unknown
mysql> SELECT Subject, SUM(TestScore) Enter -> FROM tbl_Test Enter -> GROUP BY Subject Enter -> WITH ROLLUP; Enter +---------+----------------+ | Subject | SUM(TestScore) | +---------+----------------+ | 国語 | 412 | | 算数 | 430 | | NULL | 842 | +---------+----------------+ 3 rows in set (0.00 sec)
抽出レコードの数の制限
LIMIT
unknown
mysql> SELECT * FROM tbl_Student; Enter +-----------+-----------+-----------+----------+------+ | StudentID | ClassName | FirstName | LastName | Sex | +-----------+-----------+-----------+----------+------+ | A01 | A | 尚 | 青木 | f | | A02 | A | 太郎 | 井上 | m | | A03 | A | 加奈子 | 宇野 | m | | B01 | B | ひろみ | 新井 | f | | B02 | B | 一郎 | 青木 | m | | B03 | A | ゆりえ | 石田 | f | +-----------+-----------+-----------+----------+------+ 6 rows in set (0.12 sec) # 名前順に上限3件取得 mysql> SELECT StudentID, ClassName, CONCAT(LastName,' ',FirstName) AS Name, Sex Enter -> FROM tbl_Student Enter -> ORDER BY Name Enter -> LIMIT 3; Enter +-----------+-----------+-------------+------+ | StudentID | ClassName | Name | Sex | +-----------+-----------+-------------+------+ | A02 | A | 井上 太郎 | m | | A03 | A | 宇野 加奈子 | m | | B01 | B | 新井 ひろみ | f | +-----------+-----------+-------------+------+ 3 rows in set (0.38 sec)
このページで使用しているサンプルデータ
unknown
# データベース(db_Student)作成 CREATE DATABASE IF NOT EXISTS db_Student; #データベース選択 USE db_Student; # テーブル(tbl_Test)作成 CREATE TABLE tbl_Test( SEQ INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, StudentID VARCHAR(3) DEFAULT NULL, Subject VARCHAR(20) DEFAULT NULL, TestScore INTEGER DEFAULT NULL ); # データ挿入 INSERT INTO tbl_Test (StudentID,Subject,TestScore) VALUES ('A01','国語',98), ('A02','国語',30), ('A03','国語',78), ('A01','算数',60), ('A02','算数',80), ('A03','算数',90), ('B01','国語',80), ('B02','国語',80), ('B03','国語',46), ('B01','算数',50), ('B02','算数',90), ('B03','算数',60); # テーブル(tbl_Student)作成 CREATE TABLE tbl_Student( StudentID VARCHAR(3) NOT NULL PRIMARY KEY, ClassName CHAR(2) NOT NULL, FirstName VARCHAR(20) DEFAULT NULL, LastName VARCHAR(20) DEFAULT NULL, Sex CHAR(2) DEFAULT NULL ); # データ挿入 INSERT INTO tbl_Student (StudentID,ClassName,FirstName,LastName,Sex) VALUES ('A01','A','尚','青木','f'), ('A02','A','太郎','井上','m'), ('A03','A','加奈子','宇野','m'), ('B01','B','ひろみ','新井','f'), ('B02','B','一郎','青木','m'), ('B03','A','ゆりえ','石田','f');