Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Подсчёт уникальных значений в колонке SQL: пример с Pets

Быстрый ответ

Чтобы определить количество уникальных записей, применяйте функцию COUNT(DISTINCT column_name). Например, чтобы узнать число уникальных идентификаторов клиентов в базе данных customers, выполните следующий запрос:

SQL
Скопировать код
SELECT COUNT(DISTINCT customer_id) FROM customers;

В результате вы получите количество уникальных ID клиентов.

Кинга Идем в IT: пошаговый план для смены профессии

Подсчет уникальных значений с точностью

Для точного подсчета уникальных значений используйте ключевое слово DISTINCT. Если требуется подсчитать уникальные комбинации значений в нескольких столбцах, их можно объединить следующим образом:

SQL
Скопировать код
SELECT COUNT(DISTINCT CONCAT(column1, column2)) FROM table;

Группировка уникальных значений

Для наглядного отображения распредления уникальных значений применяйте GROUP BY:

SQL
Скопировать код
SELECT column, COUNT(DISTINCT another_column) 
FROM table 
GROUP BY column;

Таким образом можно увидеть количество уникальных значений в another_column для каждого уникального значения в column.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Увеличиваем производительность с помощью подзапросов

Упростите подсчет уникальных значений с помощью подзапросов для упорядоченного подсчета:

SQL
Скопировать код
SELECT COUNT(*) FROM (SELECT DISTINCT column FROM table) AS subquery;

Сначала подзапрос выделяет уникальные значения, затем основной запрос подсчитывает их количество одним проходом.

Визуализация

Представьте себе, что вы находитесь на фруктовом рынке, где представлены различные корзины с фруктами:

Markdown
Скопировать код
Корзины: 🍎🍎🍌🍇🍇🍇🍌🍎🍓🍓

Ваша задача — определить количество разных видов фруктов, а не общее количество:

Markdown
Скопировать код
Счетчик уникальных фруктов (🧮):
[🍎, 🍌, 🍇, 🍓] = 4 вида

Аналогично, SQL-запрос вернет количество уникальных значений.

Представление уникальных подсчетов

Вот что может быть интересным: используя запрос SELECT count(column) AS count, column, можно представить количество уникальных значений вместе с самими значениями:

SQL
Скопировать код
SELECT customer_id, COUNT(DISTINCT pet_id) AS distinct_pets FROM customers_pets GROUP BY customer_id;

Без домыслов, лишь ясность

Если данные запутанны или требования неочевидны — не догадывайтесь. Применяйте SQL-запросы, чтобы получить точную информацию, соответствующую вашим данным.

Визуальная поддержка для лучшего понимания

Визуализация данных в виде простой таблицы часто помогает лучше понять представленную информацию:

SQL
Скопировать код
SELECT customer, COUNT(DISTINCT pet) AS distinct_pets
FROM ownerships
GROUP BY customer;

Статистические показатели вместе с подсчетом

Иногда нужно знать не только количество. Среднее значение тоже может быть важно:

SQL
Скопировать код
SELECT ROUND(AVG(DISTINCT column), 2) AS avg_distinct
FROM table;

Таким образом, можно получить среднее значение уникальных значений столбца с округлением до двух десятичных знаков.

Полезные материалы

  1. Как использовать DISTINCT в SQL — объяснение применения DISTINCT в SQL на сайте W3Schools.
  2. Обзор DISTINCT в SQL — стратегическое руководство по использованию DISTINCT от Mode.
  3. PostgreSQL: Официальная документация по SQL SELECT — детали использования GROUP BY и агрегирующих функций в PostgreSQL.
  4. Мнение сообщества Stack Overflow о COUNT(DISTINCT) — обсуждение применения COUNT(DISTINCT) на Stack Overflow.
  5. Преимущества сочетания COUNT и DISTINCT — статья на Database Journal о комбинировании COUNT и DISTINCT.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой SQL-запрос позволяет подсчитать количество уникальных идентификаторов клиентов?
1 / 5