Policz różne kombinacje w wielu kolumnach w SQL

Policz Rozne Kombinacje W Wielu Kolumnach W Sql



Podczas pracy w bazach danych SQL można spotkać się z sytuacjami, w których trzeba znaleźć odrębne wartości z danej tabeli i usunąć zduplikowane wartości. W większości przypadków używamy głównie klauzuli unique, aby określić kolumnę, której wartości są tym, co chcemy, aby były unikalne.

Ale co się dzieje, gdy chcesz mieć pewność, że wartości z wielu kolumn są unikalne i nie ma duplikatów?







W tym samouczku nauczymy się, jak korzystać z funkcji SQL, aby wybrać dwie lub więcej kolumn i upewnić się, że ich wartości są różne.



Problem:

Załóżmy, że mamy tabelę z wieloma kolumnami i chcemy policzyć różne kombinacje wartości w tych kolumnach.



Rozważmy na przykład tabelę danych sprzedaży z kolumnami customer_id, product_id i date. Chcemy policzyć liczbę unikalnych kombinacji id_klienta i id_produktu.





Policz różne kombinacje w wielu kolumnach w SQL

Możemy policzyć różne kombinacje w wielu kolumnach za pomocą klauzuli COUNT DISTINCT i funkcji CONCAT w SQL.

Funkcja CONCAT pozwala nam połączyć dwie lub więcej wartości w jedną wartość, której możemy następnie użyć do porównania i policzenia.



Możemy to lepiej zilustrować za pomocą następującej składni:

WYBIERZ LICZBĘ ( WYRAŹNY KONKAT ( kolumna1, kolumna2 ) )
Z nazwa_tabeli;


W tym przypadku kolumna1 i kolumna2 odnoszą się do kolumn, które chcemy połączyć podczas liczenia, a nazwa_tabeli odnosi się do nazwy tabeli docelowej.

Weźmy przykładową tabelę:

UTWÓRZ TABELĘ sprzedaży (
ID INT KLUCZ PODSTAWOWY,
identyfikator_klienta INT,
identyfikator_produktu INT,
data DATA
) ;

WPISAĆ W WARTOŚCI sprzedaży
( 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” ) ;


Wynikowa tabela:


Aby określić liczbę unikalnych kombinacji kolumn id_klienta i id_produktu z poprzedniej tabeli, możemy użyć zapytania w następujący sposób:

WYBIERZ LICZBĘ ( WYRAŹNY KONKAT ( Identyfikator klienta, '-' , ID produktu ) ) Jak wynik
ZE sprzedaży;


W poprzednim zapytaniu używamy klauzuli different i funkcji concat do połączenia wartości id_klienta i id_produktu za pomocą łącznika. Powinno to utworzyć pojedynczą wartość dla każdej kombinacji, jak pokazano poniżej:


Stąd możemy użyć funkcji zliczania, aby policzyć unikalne kombinacje z wynikowej tabeli.

Wniosek

Mamy nadzieję, że ten samouczek ci pomógł. W tym poście odkryłeś, jak połączyć klauzulę unique, funkcję concat() i klauzulę count, aby określić unikalne wartości z wielu kolumn tabeli SQL.