SQL - обработка дубликатов
Может возникнуть ситуация, когда у вас есть несколько повторяющихся записей в таблице. При получении таких записей имеет смысл получать только уникальные записи вместо получения повторяющихся записей.
SQL DISTINCT Ключевое слово, которое мы уже обсуждали, используется в сочетании с оператором SELECT для удаления всех повторяющихся записей и получения только уникальных записей.
Синтаксис
Базовый синтаксис ключевого слова DISTINCT для устранения повторяющихся записей следующий.
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
пример
Рассмотрим таблицу CUSTOMERS со следующими записями.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
Во-первых, давайте посмотрим, как следующий запрос SELECT возвращает повторяющиеся записи о зарплате.
SQL> SELECT SALARY FROM CUSTOMERS
ORDER BY SALARY;
Это приведет к следующему результату, когда зарплата 2000 выпадает дважды, что является дубликатом записи из исходной таблицы.
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+
Теперь давайте используем ключевое слово DISTINCT с указанным выше запросом SELECT и посмотрим на результат.
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY;
Это приведет к следующему результату, когда у нас нет повторяющейся записи.
+----------+
| SALARY |
+----------+
| 1500.00 |
| 2000.00 |
| 4500.00 |
| 6500.00 |
| 8500.00 |
| 10000.00 |
+----------+