Zählen Sie die unterschiedlichen Kombinationen in mehreren Spalten in SQL

Zahlen Sie Die Unterschiedlichen Kombinationen In Mehreren Spalten In Sql



Bei der Arbeit in SQL-Datenbanken kann es vorkommen, dass Sie die unterschiedlichen Werte aus einer bestimmten Tabelle suchen und die doppelten Werte entfernen müssen. In den meisten Fällen verwenden wir die Klausel „distinct“ hauptsächlich, um die Spalte anzugeben, deren Werte eindeutig sein sollen.

Aber was passiert, wenn Sie sicherstellen möchten, dass die Werte aus mehreren Spalten eindeutig sind und keine Duplikate vorhanden sind?







In diesem Tutorial erfahren Sie, wie Sie mithilfe der SQL-Funktionen zwei oder mehr Spalten auswählen und sicherstellen, dass ihre Werte unterschiedlich sind.



Problem:

Angenommen, wir haben eine Tabelle mit mehreren Spalten und möchten die Anzahl der unterschiedlichen Wertekombinationen in diesen Spalten zählen.



Betrachten wir beispielsweise eine Tabelle mit Verkaufsdaten mit den Spalten „customer_id“, „product_id“ und „date“. Wir möchten die Anzahl der eindeutigen Kombinationen von customer_id und product_id zählen.





Zählen Sie die unterschiedlichen Kombinationen in mehreren Spalten in SQL

Mit der COUNT DISTINCT-Klausel und der CONCAT-Funktion in SQL können wir die Anzahl unterschiedlicher Kombinationen über mehrere Spalten zählen.

Mit der CONCAT-Funktion können wir zwei oder mehr Werte zu einem einzigen Wert verketten, den wir dann zum Vergleichen und Zählen verwenden können.



Wir können dies anhand der folgenden Syntax besser veranschaulichen:

ZÄHLER AUSWÄHLEN ( EINDEUTIGE VERBINDUNG ( Spalte1, Spalte2 ) )
FROM Tabellenname;


In diesem Fall beziehen sich Spalte1 und Spalte2 auf die Spalten, die wir beim Zählen verketten möchten, und Tabellenname bezieht sich auf den Namen der Zieltabelle.

Nehmen wir eine Beispieltabelle:

TISCHVERKAUF ERSTELLEN (
Ausweis INT PRIMÄRSCHLÜSSEL,
customer_id INT,
Produkt_ID INT,
Datum DATUM
) ;

IN DIE VERKAUFSWERTE EINFÜGEN
( 1 , 100 , 1 , '01.05.2023' ) ,
( 2 , 101 , 1 , '02.05.2023' ) ,
( 3 , 100 , 2 , '02.05.2023' ) ,
( 4 , 102 , 3 , '03.05.2023' ) ,
( 5 , 101 , 2 , '03.05.2023' ) ,
( 6 , 103 , 2 , '04.05.2023' ) ,
( 7 , 100 , 3 , '04.05.2023' ) ,
( 8 , 102 , 1 , '05.05.2023' ) ,
( 9 , 101 , 3 , '05.05.2023' ) ,
( 10 , 103 , 1 , '06.05.2023' ) ;


Ergebnistabelle:


Um die Anzahl der eindeutigen Kombinationen der Spalten „customer_id“ und „product_id“ aus der vorherigen Tabelle zu ermitteln, können wir die Abfrage wie folgt verwenden:

ZÄHLER AUSWÄHLEN ( EINDEUTIGE VERBINDUNG ( Kundennummer, '-' , Produkt ID ) ) als Ergebnis
AUS Verkäufen;


In der vorherigen Abfrage verwenden wir die Klausel „distinct“ und die Funktion „concat“, um die Werte von „customer_id“ und „product_id“ mit einem Bindestrich zu verketten. Dadurch sollte für jede Kombination ein einzelner Wert erstellt werden, wie im Folgenden gezeigt:


Von hier aus können wir die Zählfunktion verwenden, um die eindeutigen Kombinationen aus der resultierenden Tabelle zu zählen.

Abschluss

Wir hoffen, dass Ihnen dieses Tutorial geholfen hat. In diesem Beitrag haben Sie herausgefunden, wie Sie die Klausel „distinct“, die Funktion „concat()“ und die Klausel „count“ kombinieren, um die eindeutigen Werte aus mehreren SQL-Tabellenspalten zu ermitteln.