Команда DISTINCT
позволяет выбирать
только уникальные значения из базы данных
(то есть отсеивает дубли: к примеру, в таблице
есть две Маши - тогда запрос выведет только
первую).
Синтаксис
При выборке:
SELECT DISTINCT поле FROM имя_таблицы WHERE условие
При подсчете:
SELECT COUNT(DISTINCT поле) FROM имя_таблицы WHERE условие
При суммировании:
SELECT SUM(DISTINCT поле) FROM имя_таблицы WHERE условие
Таблицы для примеров
id айди |
name имя |
age возраст |
salary зарплата |
---|---|---|---|
1 | user1 | 23 | 400 |
2 | user2 | 25 | 500 |
3 | user3 | 23 | 500 |
4 | user4 | 30 | 900 |
5 | user5 | 27 | 500 |
6 | user6 | 28 | 900 |
Пример
Давайте выберем все уникальные значения зарплат из таблицы:
SELECT DISTINCT salary FROM employees
Результат выполнения кода:
salary зарплата |
---|
400 |
500 |
900 |
Пример
Давайте подсчитаем все уникальные значения
зарплат из таблицы (их будет 3
штуки:
400
, 500
и 1000):
SELECT COUNT(DISTINCT salary) as count FROM employees
Результат выполнения кода:
count количество |
---|
3 |
Пример
Давайте подсчитаем одновременно все уникальные значения зарплат и уникальные значения возрастов и запишем их в разные поля:
SELECT
COUNT(DISTINCT salary) as salary_count,
COUNT(DISTINCT age) as age_count
FROM employees
Результат выполнения кода:
salary_count зарплата |
age_count возраст |
---|---|
3 | 5 |
Пример
Давайте просуммируем все уникальные значения
зарплат из таблицы employees
:
SELECT SUM(DISTINCT salary) as sum FROM employees
Результат выполнения кода:
sum суммарная зарплата |
---|
1900 |