Что делает distinct в SQL: руководство для начинающих

Distinct is a keyword in SQL that is used to retrieve unique values from a column or a combination of columns in a table. It eliminates duplicate rows from the result set, leaving only one occurrence of each unique value.

Here's an example to illustrate how the DISTINCT keyword works:


SELECT DISTINCT column_name
FROM table_name;

In the above SQL query, we use DISTINCT to select only unique values from the specified column_name.

For instance, let's say we have a table called "employees" with a column "department" that contains duplicate values:


| employee_id | department |
|-------------|------------|
| 1           | Sales      |
| 2           | Marketing  |
| 3           | Sales      |
| 4           | HR         |
| 5           | Marketing  |

If we execute the following query:


SELECT DISTINCT department
FROM employees;

The result will be:


| department |
|------------|
| Sales      |
| Marketing  |
| HR         |

As you can see, the duplicate occurrences of "Sales" and "Marketing" have been eliminated, and only the unique values are returned.

Детальный ответ

Что делает DISTINCT в SQL?

Запросы SQL позволяют нам выбирать данные из таблиц и применять различные операции к этим данным. Одной из таких операций является оператор DISTINCT. Он используется для выбора уникальных значений из столбцов таблицы и исключает повторения.

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

Пример использования DISTINCT

Допустим, у нас есть таблица "users" с столбцом "city", который содержит информацию о городах, в которых живут пользователи:


        CREATE TABLE users (
            id INT,
            name VARCHAR(50),
            city VARCHAR(50)
        );
        
        INSERT INTO users (id, name, city)
        VALUES 
            (1, 'John', 'New York'),
            (2, 'Alice', 'London'),
            (3, 'Bob', 'Paris'),
            (4, 'Eva', 'New York'),
            (5, 'Mike', 'London');
    

Чтобы получить список всех уникальных городов из таблицы "users", мы можем использовать оператор DISTINCT следующим образом:


        SELECT DISTINCT city
        FROM users;
    

Этот запрос вернет следующий результат:


        city
        ------
        New York
        London
        Paris
    

Как видно, оператор DISTINCT выбрал только уникальные значения из столбца "city" и исключил повторения.

Применение DISTINCT к нескольким столбцам

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

Например, давайте рассмотрим следующую таблицу "orders", содержащую информацию о заказах пользователей:


        CREATE TABLE orders (
            id INT,
            user_id INT,
            product VARCHAR(50),
            quantity INT
        );
        
        INSERT INTO orders (id, user_id, product, quantity)
        VALUES 
            (1, 1, 'Phone', 1),
            (2, 2, 'Laptop', 2),
            (3, 1, 'Headphones', 1),
            (4, 3, 'Phone', 1),
            (5, 2, 'Headphones', 1);
    

Чтобы получить список уникальных комбинаций пользователей и товаров из таблицы "orders", мы можем использовать оператор DISTINCT следующим образом:


        SELECT DISTINCT user_id, product
        FROM orders;
    

Результат будет следующим:


        user_id | product
        ---------+---------
              1 | Phone
              2 | Laptop
              1 | Headphones
              3 | Phone
              2 | Headphones
    

Здесь оператор DISTINCT выбрал только уникальные комбинации из столбцов "user_id" и "product". Если бы мы не использовали оператор DISTINCT, то в результатах были бы повторы, например, пользователь с идентификатором 1 и товаром "Phone" встречается дважды.

Усложненные примеры использования DISTINCT

Оператор DISTINCT может быть использован и в более сложных запросах, включая JOIN и WHERE условия.

Рассмотрим таблицы "users" и "orders" и предположим, что нам нужно получить список уникальных городов, в которых живут пользователи, у которых был сделан заказ на товар "Phone". Мы можем использовать следующий запрос:


        SELECT DISTINCT u.city
        FROM users u
        JOIN orders o ON u.id = o.user_id
        WHERE o.product = 'Phone';
    

Этот запрос вернет список уникальных городов, где пользователи оставляли заказы на "Phone". Здесь мы использовали оператор DISTINCT в сочетании с JOIN и WHERE условием.

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

Заключение

Оператор DISTINCT в SQL позволяет выбирать уникальные значения из столбцов таблицы и исключать повторения. Он полезен, когда необходимо получить список уникальных значений из одного или нескольких столбцов. Оператор DISTINCT может быть использован в простых и сложных запросах, включая JOIN и WHERE условия. Он помогает нам анализировать данные и выявлять уникальные значения в больших объемах информации.

Видео по теме

Урок 5 - Оператор DISTINCT (SQL для Начинающих)

#11. Оператор DISTINCT. Подсчет уникальных записей и удаление дублей | Основы SQL

Урок 10. SQL. Конструкция DISTINCT

Похожие статьи:

Что делает go sql: 5 важных функций, которые вы должны знать

Что делает distinct в SQL: руководство для начинающих

Что делает оператор WITH в SQL?

Что входит в DDL SQL: основные операторы и принципы

Что означает INNER JOIN в SQL: объяснение, примеры, особенности