このSQLチュートリアルは、OracleのSQL DISTINCTキーワードに焦点を当て、説明、例、演習を提供します。 このレッスンの練習問題については、このリンクを使用してください。
このチュートリアルは、Oracle で基本的なクエリを作成する方法を説明するいくつかの記事の一部です。 この主題に関する他の記事を読むには、以下のリンクを使用してください。
- Writing Basic SQL SELECT statements
- SQL Arithmetic Operators
- SQL Column Aliases
- SQL String Concatenation
- SQL DISTINCT keyword
The Oracle DISTINCT Keyword
Oracleクエリーのデフォルト表示は重複行も含むすべて行になる。 SELECT句のOracle DISTINCTキーワードは、重複行を排除し、値のユニークなリストを表示するために使用されます。 ロンドンから 40 名、リバプールから 30 名、マンチェスターから 30 名の顧客のリストが含まれています。 あなたは、これらの顧客が居住する都市のリストを表示するように求められました:
SELECT cityFROM customers
このOracleステートメントは、100行(ロンドンは40回、リバプールは30回、マンチェスターは30回)を取得するのであまり有益ではありませんが、我々の意図は3行だけ表示することでした。
この問題を解決し、一意の値のみを取得するには、Oracle DISTINCT キーワードを使用します:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
結果:
CITY------LondonLiverpoolManchester
注意: Oracle DISTINCT キーワードは Oracle SELECT キーワードのすぐ後に含める必要があります。
Oracle DISTINCT Statement on Multiple Columns
Oracle DISTINCT キーワードの後に、複数の列を指定することが可能です。 Oracle DISTINCT修飾子は、選択されたすべての列に影響を与え、そうすることで、結果は異なる列からの値のユニークな組み合わせを表示します。 たとえば、異なる都市や国からの顧客のリストです。
顧客名 | 都市 | 国 |
ジョンスミス | リヴァプール | イギリス |
Sophia Williams | ロンドン | |
エマ・ミラーリバプール | ||
オリビア・ウィルソン | フランス | |
Logan Davis | Paris | France |
Liverpool- からのお客様が2名いらっしゃることがわかりますね。イギリス パリ(フランス)から2名、ロンドン(イギリス)から1名。
Country列でOracle DISTINCT文を実行すると、2行(England,Paris)が検索されます。
SELECT DISTINCT countryFROM customers
City列でOracle DISTINCT文を実行すると、3行(Liverpool, London, paris)が検索されます。
SELECT DISTINCT city FROM customers
City列とCountry列の両方でOracle DISTINCT文を実行した場合:
SELECT DISTINCT city , countryFROM customers
3つの結果(Liverpool England, London England, Paris France)が取得されました。