【SQL超入門講座】17.DISTINCT|重複した値を排除して抽出する方法

オススメ

皆さんは値の重複を排除してカラムを抽出したい時、どのようにしていますか?
以前の動画で解説したGROUP BY句を思いつく方が多いかもしれません。
このGROUP BY句と同じような機能を持つものとして、distinctがあります。
SELECT句でカラムの前にdistinctと書くだけで、値の重複を排除してそのカラムを抽出することができます。
とても便利ですので、GROUP BY句だけでなくdistinctも是非使えるようにしましょう。
それではレッスンスタートです。

▼目次
00:00 はじめに
01:03 distinctとは
01:28 distinctを使ったカラムの抽出
02:22 distinctを使った複数カラムの抽出
03:32 distinctとcountの併用
0:28 GROUP BY句との違い

▼関連動画
【SQL超入門講座】01.コース紹介 ~ SQLとは? ~ 環境構築|初心者向け

【SQL超入門講座】01.コース紹介 ~ SQLとは? ~ 環境構築|初心者向け

【SQL超入門講座】02.データベースのテーブルとは?

【SQL超入門講座】02.データベースのテーブルとは?

【SQL超入門講座】03.SELECT文|SQLの基本中の基本

【SQL超入門講座】03.SELECT文|データベースからデータ抽出する方法

【SQL超入門講座】04.WHERE|特定の条件でデータを抽出する方法

【SQL超入門講座】04.WHERE|特定の条件でデータを抽出する方法

【SQL超入門講座】05.ORDER BY|データの並び替え

【SQL超入門講座】05.ORDER BY|データの並び替える方法

【SQL超入門講座】06.GROUP BY|グルーピング、グループ化

【SQL超入門講座】06.GROUP BY|指定したカラムの値を基準にデータを集計する方法

【SQL超入門講座】07.HAVING|グループ化したデータの中からデータ抽出

【SQL超入門講座】07.HAVING|グループ化したデータの中からデータ抽出

【SQL超入門講座】08.JOIN|テーブルの結合(INNER JOIN/LEFT JOIN)

【SQL超入門講座】08.INNER JOIN/LEFT JOIN|テーブル同士を結合する方法①

【SQL超入門講座】09.PostgreSQLの環境構築|MacとWindowsで解説!

【SQL超入門講座】09.PostgreSQLの環境構築|MacとWindowsで解説!

【SQL超入門講座】10.PythonとPostgreSQLの接続

【SQL超入門講座】10.PythonからPostgreSQLに接続する方法

【SQL超入門講座】11.データベースのバックアップと復元

【SQL超入門講座】11.データベースのバックアップと復元する方法

【SQL超入門講座】12.テーブルの結合(RIGHT JOIN/OUTER JOIN)

【SQL超入門講座】12.RIGHT JOIN/OUTER JOIN|テーブルの結合する方法②

【SQL超入門講座】13.AND, OR|複数条件で抽出する方法

【SQL超入門講座】13.AND, OR|複数条件で抽出する方法

【SQL超入門講座】14.LIKE|部分一致や前方一致、後方一致するレコードを抽出する方法

【SQL超入門講座】14.LIKE|部分一致や前方一致、後方一致するレコードを抽出する方法

【SQL超入門講座】15.BETWEEN|区間を指定して抽出する方法

【SQL超入門講座】15.BETWEEN|区間を指定して抽出する方法

【SQL超入門講座】16.LENGTH関数|文字数を条件にしてデータを抽出する方法

【SQL超入門講座】16.LENGTH関数|文字数を条件にしてデータを抽出する方法

▼書き起こしブログ
準備中

▼自己紹介
ブログに自己紹介を書いております。
https://kino-code.com/profile/

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/キノコード -105693727500005/
Website : https://kino-code.com/

▼書き起こし
distinctは値の重複を排除してカラムを抽出したいときに使います。
SELECT文では抽出するカラムの直前にdistinctを記述します。
distinctを追加したSELECT文の構文を確認しておきましょう。
“`
SELECT distinct カラム1, カラム2… FROM テーブル
“`

このようにしてdistinctを使って抽出したカラムには、一意の値だけが残ります。
そのためどのような値がカラムに存在しているか、一目瞭然で把握することができます。

それではテーブルを作成して、distinctの使い方を具体的に見ていきましょう。
今回はproductsテーブルを使用します。
productsテーブルはid、category、item、priceの4つのカラムを持ったテーブルです。

まずdistinctを用いて、productsテーブルからcategoryのカラムを値の重複なしで抽出してみましょう。
SQLはこのように書くことができます。
抽出するcategoryのカラムの直前にdistinctと書けばOKです。
簡単ですね。

それでは実行します。
“`
SELECT distinct category FROM products;

“`

もともとproductsテーブルのcategoryには、outer、tops、shoesがそれぞれ2レコードずつ重複して存在していました。
distinctを使って抽出することで、これらの値の重複を排除して抽出することができました。

次にdistictを使って、複数のカラムをまとめて抽出してみましょう。
複数のカラムをまとめて抽出するときは、そのカラムに含まれる値の組み合わせの重複が排除されます。
言葉だけの説明だとわかりづらいと思いますので、さっそくSQLを書いて具体的に見ていきましょう。

ここではdistinctを使ってcategoryとitemのカラムをまとめて抽出してみます。
SQLはこのように書くことができます。
distinctは抽出する複数のカラムの先頭に書くようにしましょう。
それでは実行します。

“`
SELECT distinct category, item FROM products;
“`

抽出に使ったproductsテーブルを再度見てみましょう。
categoryとitemのカラムの値の組み合わせに注目してください。
そうするとshoesとsneakerの組み合わせに重複が見つかるはずです。

SQLの実行結果ではこのshoesとsneakerの値の組み合わせの重複が排除されています。
このようにdistinctを使って複数カラムをまとめて抽出すると、一意の値の組み合わせを表示することができます。
(続く)

#SQL #データベース #postgreql #SQLite #重複削除 #DISTINCT

コメント

タイトルとURLをコピーしました