概要 :このチュートリアルでは、SQLite SELECT DISTINCT
の使用方法を学習します 結果セット内の重複する行を削除する句。
SQLiteの概要SELECT DISTINCT
条項
DISTINCT
句は、SELECT
のオプションの句です。 声明。 DISTINCT
句を使用すると、結果セット内の重複する行を削除できます。
次のステートメントは、DISTINCT
の構文を示しています。 条項:
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
この構文では:
- まず、
DISTINCT
句は、SELECT
の直後に表示する必要があります キーワード。 - 次に、
DISTINCT
の後に列または列のリストを配置します キーワード。 1つの列を使用する場合、SQLiteはその列の値を使用して重複を評価します。複数の列を使用する場合、SQLiteはこれらの列の値の組み合わせを使用して重複を評価します。
SQLiteはNULL
を考慮します 重複としての値。 DISTINCT
を使用する場合 NULL
を持つ列を持つ句 値の場合、SQLiteはNULL
の1行を保持します 値。
データベース理論では、列にNULL
が含まれている場合 値の場合、特定のレコードのその列に関する情報がないか、情報が適用されないことを意味します。
たとえば、顧客がNULL
の電話番号を持っている場合 値、つまり、顧客情報を記録する時点で顧客の電話番号に関する情報がないか、顧客が電話番号をまったく持っていない可能性があることを意味します。
SQLite SELECT DISTINCT
例
customers
を使用します デモンストレーション用のサンプルデータベースのテーブル。
顧客がいる都市を知りたい場合は、SELECT
を使用できます。 city
からデータを取得するステートメント customers
の列 次のような表:
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
試してみてください
59行を返します。 Berlin
などの重複する行はほとんどありません London
、およびMountain View
これらの重複する行を削除するには、DISTINCT
を使用します 次のような条項:
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
試してみてください
DISTINCT
であるため、53行が返されます。 句は6つの重複する行を削除しました。
SQLite SELECT DISTINCT
複数の列に
次のステートメントは、すべての顧客の都市と国を検索します。
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
試してみてください
結果セットには、上のスクリーンショットに示すように、重複する都市と国が含まれています。たとえば、ブラジルのサンパウロです。
都市と国の重複を削除するには、DISTINCT
を適用します 次のクエリに示すように、都市と国の両方の列に句を追加します。
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
部分的な出力は次のとおりです。
前述のように、SQLiteは都市と国の組み合わせを使用して重複を評価します。
SQLite SELECT DISTINCT
NULL
を使用 例
このステートメントは、customers
から顧客の会社の名前を返します テーブル。
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
試してみてください
多くのNULL
を含む59行を返します 値。
ここで、DISTINCT
を適用すると ステートメントの句では、NULL
を含む1行のみが保持されます 値。
次のステートメントを参照してください:
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このステートメントは、1つのNULL
で11行を返します 値。
テーブルから列のリストを選択し、いくつかの列の一意の組み合わせを取得する場合は、GROUP BY
を使用できることに注意してください。 条項。
このチュートリアルでは、SQLite SELECT DISTINCT
を使用して結果セットから重複行を削除する方法を学習しました。 条項。