Как посчитать уникальные значения в sql
Используем DISTINCT и COUNT() . Первый удалит дубликаты, а вторая посчитает количество строк.
SELECT COUNT(DISTINCT car_id) FROM orders; -- покажет количество уникальных car_id в таблице orders
Команда DISTINCT
Команда 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 |
Уникальные записи – SELECT DISTINCT
Примечание:
Во всех статьях текущей категории уроков по SQL используются примеры и задачи, основанные на учебной базе данных.
Приступая к изучению данного материала, рекомендуется ознакомиться с описанием учебной БД.
В подавляющем большинстве случаев, записи в таблицах баз данных уникальны, но в отдельных столбцах допускаются повторяющиеся значения. Если запрос выгружает столбцы не являющиеся ключевыми, то полученные строки могут дублироваться.
Избавиться от дубликатов можно, добавив в запрос ключевое слово DISTINCT. Оно указывается в предложении SELECT, сразу после ключевого слова SELECT:
SELECT DISTINCT FROM
Выбрать уникальные имена всех сотрудников.
-- Выполняем запрос в контексте учебной базы USE CallCenter SELECT DISTINCT Имя FROM Сотрудники
Общее количество записей в таблице сотрудников составляет 39, но приведенный SQL-код выгрузил 34 строки. 5-ть повторяющихся имен были удалены из результата.
Дополним синтаксис оператора SELECT, описанный в предыдущем уроке, новым ключевым словом:
SELECT [DISTINCT] [Имя_таблицы.]Имя_столбца[, [Имя_таблицы.]Имя_столбца2 …] FROM [[Имя_базы_данных.]Имя_Схемы.]Имя_таблицы
- Объединение таблиц – UNION
- Соединение таблиц – операция JOIN и ее виды
- Тест на знание основ SQL
Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы я мог развивать его дальше.
Как в sql выбрать уникальные значения
С помощью DISTINCT можно получить только уникальные значения из столбца таблицы.
SELECT DISTINCT first_name FROM users; first_name ------------ Roman Sean Alex Michal Britney
Кроме того, DISTINCT можно использовать и с несколькими полями сразу:
SELECT DISTINCT first_name, last_name FROM users; first_name | last_name ------------+--------------- Bruce | Williss Sean | Connery Robin | Williams