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:
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.