SQLのお勉強 6.distinct
2020-09-14
こんにちは、0371です。
今回は、SQLのお勉強をしたいと思います。
基本情報技術者試験で出題される範囲を中心に進めます。
お勉強
※ PostgreSQLはインストール済みかつ、パスも通しているという前提で進めていきます。
分からないという方は、以下の記事から始めてください。
dockerを使って、再構築が容易なSQLの練習場を作成する
"https://0371.blog/docker-sql"
前回の記事はこちら
SQLのお勉強 5.select "https://0371.blog/sql-5"
重複行を除く distinct
前回使用したselect
文と、distinct
を合わせることで、重複行がないような結果を取得することができます。
distinct
は、ディスティンクト と読みます。
select distinct 列名 from テーブル名;
例えば、shohin_bunrui
を重複なしで取り出したいという場合は以下のようになります。
select distinct shohin_bunrui from Shohin;
結果はこうなります。
shohin_bunrui
---------------
キッチン用品
衣服
事務用品
(3 rows)
distinct
は、null
も含めます。
select distinct shiire_tanka from Shohin;
shiire_tanka
--------------
320
500
2800
5000
790
(6 rows)
distinct
は、複数の列の前にも置くことができます。
ただし、distinct
は先頭の列名の前でしか書くことができません。
distinct
指定前
select shohin_bunrui, torokubi from Shohin;
shohin_bunrui | torokubi
---------------+------------
衣服 | 2009-09-20
事務用品 | 2009-09-11
衣服 |
キッチン用品 | 2009-09-20
キッチン用品 | 2009-01-15
キッチン用品 | 2009-09-20
キッチン用品 | 2008-04-28
事務用品 | 2009-11-11
(8 rows)
「キッチン用品 | 2009-09-20」の行が二つあります。
distinct
指定後
select distinct shohin_bunrui, torokubi from Shohin;
shohin_bunrui | torokubi
---------------+------------
衣服 |
キッチン用品 | 2009-01-15
衣服 | 2009-09-20
キッチン用品 | 2008-04-28
事務用品 | 2009-11-11
事務用品 | 2009-09-11
キッチン用品 | 2009-09-20
(7 rows)
「キッチン用品 | 2009-09-20」の行が重複していたので、一つになっています。
今日はここまで。
参考書籍
SQL 第2版 ゼロからはじめるデータベース操作
"https://amzn.to/2QYMBJD"
今日の一言
distinct
ができたのでSQL
はマスターしたも同然!!!!
SQLのお勉強 7.where
"https://0371.blog/sql-7"