Может быть ситуация, когда у вас есть несколько записей дубликатов в таблице. Хотя выборка таких записей, и имеет смысл, чтобы взять только уникальные записи вместо выборки повторяющихся записей.
Ключевое слово DISTINCT, о котором мы уже говорили, используется в сочетании с SELECT, чтобы устранить все повторяющиеся записи и сделать выборку только уникальных записей.
Основной синтаксис ключевого слова DISTINCT, чтобы исключить повторяющиеся записи, следующий:
SELECT DISTINCT column1, column2,.....columnN FROM table_name WHERE [condition]
Рассмотрим таблицу клиентов, имеющую следующие записи:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 31500.00 | | 5 | Ruslan | 34 | Omsk | 43000.00 | | 6 | Dima | 32 | SP | 43000.00 | | 7 | Roma | 34 | SP | 10000.00 | +----+----------+-----+-----------+----------+
Во-первых, давайте посмотрим, как оператор SELECT возвращает дубликат записи заработной платы:
SQL> SELECT SALARY FROM CUSTOMERS ORDER BY SALARY;
Это произведет следующий результат, где зарплата 43000 покажется дважды, которое дублирует запись из исходной таблицы.
+----------+ | SALARY | +----------+ | 21000.00 | | 55500.00 | | 34000.00 | | 31500.00 | | 43000.00 | | 43000.00 | | 10000.00 | +----------+
Теперь, давайте используем ключевое слово DISTINCT с указанным запросом SELECT, чтобы увидеть результат.
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS ORDER BY SALARY;
Это произведет следующий результат, где у нас нет каких-либо повторяющихся записей:
+----------+ | SALARY | +----------+ | 21000.00 | | 55500.00 | | 34000.00 | | 31500.00 | | 43000.00 | | 10000.00 | +----------+