Команда DISTINCT

Команда DISTINCT позволяет выбирать только уникальные значения из базы данных (то есть отсеивает дубли: к примеру, в таблице есть две Маши - тогда запрос выведет только первую).

Синтаксис

При выборке:

SELECT DISTINCT поле FROM имя_таблицы WHERE условие

При подсчете:

SELECT COUNT(DISTINCT поле) FROM имя_таблицы WHERE условие

При суммировании:

SELECT SUM(DISTINCT поле) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица employees
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