При работе с базами данных SQL вы можете столкнуться с такими случаями, когда вы должны найти отдельные значения из данной таблицы и удалить повторяющиеся значения. В большинстве случаев мы в основном используем предложение different, чтобы указать столбец, значения которого мы хотим сделать уникальными.
Но что происходит, когда вы хотите убедиться, что значения из нескольких столбцов уникальны и не содержат дубликатов?
В этом руководстве мы узнаем, как использовать функции SQL для выбора двух или более столбцов и убедиться, что их значения различны.
Проблема:
Предположим, у нас есть таблица с несколькими столбцами, и мы хотим подсчитать количество различных комбинаций значений в этих столбцах.
Например, давайте рассмотрим таблицу данных о продажах со столбцами customer_id, product_id и date. Мы хотим подсчитать количество уникальных комбинаций customer_id и product_id.
Подсчитайте различные комбинации в нескольких столбцах в SQL
Мы можем подсчитать количество различных комбинаций в нескольких столбцах, используя предложение COUNT DISTINCT и функцию CONCAT в SQL.
Функция CONCAT позволяет нам объединить два или более значений в одно значение, которое мы затем можем использовать для сравнения и подсчета.
Мы можем лучше проиллюстрировать это, используя следующий синтаксис:
ВЫБЕРИТЕ КОЛИЧЕСТВО ( ОТЛИЧНЫЙ КОНКАТ ( столбец1, столбец2 ) )ОТ имя_таблицы;
В этом случае столбец1 и столбец2 относятся к столбцам, которые мы хотим объединить при подсчете, а имя_таблицы относится к имени целевой таблицы.
Возьмем примерную таблицу:
СОЗДАТЬ ТАБЛИЦУ продаж (идентификатор ВНУТРЕННИЙ ПЕРВИЧНЫЙ КЛЮЧ,
идентификатор_клиента INT,
product_id INT,
дата ДАТА
) ;
ВСТАВЬТЕ В ЦЕННОСТИ продаж
( 1 , 100 , 1 , '2023-05-01' ) ,
( 2 , 101 , 1 , '2023-05-02' ) ,
( 3 , 100 , 2 , '2023-05-02' ) ,
( 4 , 102 , 3 , '2023-05-03' ) ,
( 5 , 101 , 2 , '2023-05-03' ) ,
( 6 , 103 , 2 , '2023-05-04' ) ,
( 7 , 100 , 3 , '2023-05-04' ) ,
( 8 , 102 , 1 , '2023-05-05' ) ,
( 9 , 101 , 3 , '2023-05-05' ) ,
( 10 , 103 , 1 , '2023-05-06' ) ;
Результирующая таблица:
Чтобы определить количество уникальных комбинаций столбцов customer_id и product_id из предыдущей таблицы, мы можем использовать следующий запрос:
ОТ продаж;
В предыдущем запросе мы используем предложение different и функцию concat для объединения значений customer_id и product_id через дефис. Это должно создать одно значение для каждой комбинации, как показано ниже:
Отсюда мы можем использовать функцию подсчета для подсчета уникальных комбинаций из результирующей таблицы.
Заключение
Мы надеемся, что этот урок помог вам. В этом посте вы узнали, как комбинировать предложение Different, функцию concat() и предложение count для определения уникальных значений из нескольких столбцов таблицы SQL.