1
1

More than 1 year has passed since last update.

SQLのSELECT結果をカウントする方法

Posted at

概要

SQLでSELECTの結果をカウントする方法を記録しておきます。SELECTの結果を数えるには、COUNT関数を使用します。

方法

test_tableのレコード数を調べる

SELECT COUNT(*) FROM test_table;

test_tabletestカラムの重複を回避したいとき

SELECT COUNT(DISTINCT test) FROM test_table;

詳細

上記のSELECTを叩いたテーブル

MariaDB [testdb]> desc test_table;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| test  | varchar(50) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.017 sec)

テーブルのデータ

MariaDB [testdb]> select * from test_table;
+----+--------+
| id | test   |
+----+--------+
|  1 | Data 1 |
|  2 | Data 2 |
|  3 | Data 3 |
|  4 | Data 4 |
|  5 | Data 5 |
|  6 | Data 6 |
|  7 | Data 3 |
|  8 | Data 7 |
|  9 | Data 8 |
| 10 | Data 3 |
+----+--------+
10 rows in set (0.001 sec)

COUNT関数をしてみると、データの通りレコード数10件がカウントできている事がわかる。

MariaDB [testdb]> SELECT COUNT(*) FROM test_table;
+----------+
| COUNT(*) |
+----------+
|       10 |
+----------+
1 row in set (0.005 sec)

また、重複項目(IDが3,7,10)を回避してカウントしてみるとちゃんと8件になっていることがわかる。

MariaDB [testdb]> SELECT COUNT(DISTINCT test) FROM test_table;
+----------------------+
| COUNT(DISTINCT test) |
+----------------------+
|                    8 |
+----------------------+
1 row in set (0.001 sec)

今回のデータの作成方法

今回は簡単なテーブルで試しましたが、一応作成方法も載せておきます。

  1. databaseの作成
-- データベースの作成
CREATE DATABASE my_database;
USE my_database;
  1. tableの作成
-- テーブルの作成
CREATE TABLE test_table (
    id INT PRIMARY KEY AUTO_INCREMENT,
    test VARCHAR(50)
);
  1. データのインサート
-- データのインサート
INSERT INTO my_database.test_table (test)
VALUES
    ('Data 1'),
    ('Data 2'),
    ('Data 3'),
    ('Data 4'),
    ('Data 5'),
    ('Data 6'),
    ('Data 3'), -- 重複する項目
    ('Data 7'),
    ('Data 8'),
    ('Data 3'); -- 重複する項目

まとめ

今回SQLでCOUNT関数の基本的な使用方法を記載しました。SQLは色々と自分でいじってみるのが一番の勉強法だと思うので、テーブルを実際に作成してみて色々と試してみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1