Sql anzahl datensätze mit gleichem wert

Dubletten sind doppelte Einträge, die Sie mit einer SQL-Abfrage in einer Tabelle finden können.

Die folgende Abfrage listet alle Dubletten auf und zeigt die Anzahl der Duplikate an:

SELECT
    [SPALTE], 
    COUNT(*) AS anzahl
FROM [TABELLE]
GROUP BY [SPALTE]
HAVING anzahl > 1

Wenn Sie wissen möchten welche Datensätze doppelt sind, dann können diese einzeln aufgelistet werden.
Die folgenden SQL-Abfrage listet Ihnen die Duplikate auf:

SELECT
    table_a.[SPALTE]
FROM [TABELLE] AS table_a
INNER JOIN (
    SELECT
        [SPALTE]
    FROM [TABELLE]
    GROUP BY [SPALTE]
    HAVING COUNT(id) > 1
) AS table_b ON table_b.[SPALTE] = table_a.[SPALTE]

In diesem Lernprogramm wird die Verwendung der SQL Funktion COUNT mit Syntax und Beispielen erläutert.

Beschreibung

Mit der SQL Funktion COUNT wird die Anzahl der in einer SELECT-Anweisung zurückgegebenen Zeilen gezählt.

Syntax

Die Syntax für die COUNT-Funktion in SQL lautet:

SELECT COUNT(Aggregat_Ausdruck)
FROM Tabellen
[WHERE Bedingungen]
[ORDER BY Ausdruck [ ASC | DESC ]];

Oder die Syntax für die COUNT-Funktion beim Gruppieren der Ergebnisse nach einer oder mehreren Spalten lautet:

SELECT Ausdruck1, Ausdruck2, ... Ausdruck_n,
COUNT(Aggregat_Ausdruck)
FROM Tabellen
[WHERE Bedingungen]
GROUP BY Ausdruck1, Ausdruck2, ... Ausdruck_n
[ORDER BY Ausdruck [ ASC | DESC ]];

Parameter oder Argumente

Ausdruck1, Ausdruck2, ... Ausdruck_nAusdrücke, die nicht in der COUNT-Funktion enthalten sind und in der GROUP BY Klausel am Ende der SQL-Anweisung enthalten sein müssen.Aggregat_AusdruckDies ist die Spalte oder der Ausdruck, deren NOT NULL Werte gezählt werden.TabellenDie Tabellen, aus denen Sie Datensätze abrufen möchten. In der FROM-Klausel muss mindestens eine Tabelle aufgeführt sein.WHERE BedingungenWahlweise. Dies sind Bedingungen, die erfüllt sein müssen, damit die Datensätze ausgewählt werden können.ORDER BY AusdruckWahlweise. Der Ausdruck, der zum Sortieren der Datensätze in der Ergebnismenge verwendet wird. Wenn mehr als ein Ausdruck angegeben wird, müssen die Werte durch Kommas getrennt werden.ASCWahlweise. ASC sortiert die Ergebnismenge in aufsteigender Reihenfolge nach Ausdruck. Dies ist das Standardverhalten, wenn es nicht angegeben wirdDESC Wahlweise. DESC sortiert die Ergebnismenge in absteigender Reihenfolge nach Ausdruck.

Beispiel - Die COUNT-Funktion enthält nur NOT NULL Werte

Nicht jeder erkennt dies, aber die COUNT-Funktion zählt nur die Datensätze, bei denen der Ausdruck in COUNT (Ausdruck) NOT NULL ist. Wenn der Ausdruck ein NULL Wert ist, wird er nicht in die COUNT-Berechnungen einbezogen. Lassen Sie uns dies weiter untersuchen.

In diesem Beispiel haben wir eine Tabelle mit dem Namen customers mit den folgenden Daten:

customer_idlast_namefirst_namefavorite_website
4000 Bieber Justin google.com
5000 Gomez Selena bing.com
6000 Kunis Mila yahoo.com
7000 Cruise Tom oracle.com
8000 Depp Johnny NULL
9000 Crowe Russell google.com

Geben Sie die folgende SELECT-Anweisung ein, die die COUNT-Funktion verwendet:

SELECTCOUNT(customer_id)

  FROMcustomers;

Es wird 1 Datensatz ausgewählt. Dies sind die Ergebnisse, die Sie sehen sollten:

COUNT(customer_id)
6

In diesem Beispiel gibt die Abfrage 6 zurück, da die customers Tabelle 6 Datensätze enthält und alle Werte für customer_id NOT NULL sind (dh customer_id ist der Primärschlüssel für die Tabelle).

Aber was passiert, wenn wir mit der COUNT-Funktion auf einen NULL-Wert stoßen? Geben Sie die folgende SELECT-Anweisung ein, die die Spalte favorite_website zählt, die NULL Werte enthalten kann:

SELECTCOUNT(favorite_website)

  FROMcustomers;

Es wird 1 Datensatz ausgewählt. Dies sind die Ergebnisse, die Sie sehen sollten:

COUNT(favorite_website)
5

In diesem zweiten Beispiel wird 5 zurückgegeben. Da einer der favorite_website Werte NULL ist, wird er von der COUNT-Funktionsberechnung ausgeschlossen. Infolgedessen gibt die Abfrage 5 statt 6 zurück.

TIPP: Verwenden Sie den Primärschlüssel in der COUNT-Funktion oder COUNT(*), wenn Sie sicher sein möchten, dass Datensätze in den Berechnungen nicht ausgeschlossen werden.

Beispiel - Verwenden eines einzelnen ausdrücke in der COUNT-Funktion

Schauen wir uns ein Beispiel an, das zeigt, wie die COUNT-Funktion mit einem einzelnen Ausdruck in einer Abfrage verwendet wird.
In diesem Beispiel haben wir eine Tabelle namens employees mit den folgenden Daten:

employee_numberlast_namefirst_namesalarydept_id
1001 Bieber Justin 62000 500
1002 Gomez Selena 57500 500
1003 Kunis Mila 71000 501
1004 Cruise Tom 42000 501

Geben Sie die folgende SQL-Anweisung ein:

SELECTCOUNT(*)AStotal

  FROMemployees

WHEREsalary>50000;

Es wird 1 Datensatz ausgewählt. Dies sind die Ergebnisse, die Sie sehen sollten:

total
3

In diesem Beispiel geben wir die Anzahl der Mitarbeiter zurück, deren Gehalt über 50000 US-Dollar liegt. Wir haben COUNT(*) als total angegeben, um die Lesbarkeit unserer Abfrageergebnisse zu verbessern. Jetzt wird total als Spaltenüberschrift angezeigt, wenn die Ergebnismenge zurückgegeben wird.

Beispiel - Verwenden von GROUP BY mit der COUNT-Funktion

In einigen Fällen müssen Sie die GROUP BY Klausel mit der COUNT-Funktion verwenden. Dies ist der Fall, wenn in der SELECT-Anweisung Spalten aufgeführt sind, die nicht Teil der COUNT-Funktion sind. Lassen Sie uns dies weiter untersuchen.

Verwenden Sie erneut die Tabelle employees, die die folgenden Daten enthält:

employee_numberlast_namefirst_namesalarydept_id
1001 Bieber Justin 62000 500
1002 Gomez Selena 57500 500
1003 Kunis Mila 71000 501
1004 Cruise Tom 42000 501

Geben Sie die folgende SQL-Anweisung ein:

SELECTdept_id,COUNT(*)AStotal

  FROMemployees

WHEREsalary>50000

GROUP BYdept_id;

Es werden 2 Datensätze ausgewählt. Dies sind die Ergebnisse, die Sie sehen sollten:

dept_idtotal
500 2
501 1

In diesem Beispiel gibt die COUNT-Funktion die Anzahl der employee zurück, die für jede dept_id über 50000 US-Dollar verdienen. Da die Spalte dept_id nicht in der COUNT-Funktion enthalten ist, muss sie in der GROUP BY Klausel aufgeführt sein.

Beispiel - Verwenden von DISTINCT mit der COUNT-Funktion

Wussten Sie, dass Sie die DISTINCT Klausel in der COUNT-Funktion verwenden können? Auf diese Weise können Sie nur die eindeutigen Werte zählen.

Verwenden der gleichen Tabelle employees wie im vorherigen Beispiel:

employee_numberlast_namefirst_namesalarydept_id
1001 Bieber Justin 62000 500
1002 Gomez Selena 57500 500
1003 Kunis Mila 71000 501
1004 Cruise Tom 42000 501

Geben Sie die folgende SQL-Anweisung ein:

SELECTCOUNT(DISTINCTdept_id)AStotal

  FROMemployees

WHEREsalary>50000;

Es wird 1 Datensatz ausgewählt. Dies sind die Ergebnisse, die Sie sehen sollten:

total
2

In diesem Beispiel gibt die COUNT-Funktion die eindeutige Anzahl von dept_id Werten zurück, bei denen mindestens ein employee mehr als 50.000 US-Dollar verdient.

TIPP: Leistungsoptimierung mit der COUNT-Funktion

Da die COUNT-Funktion unabhängig von den NOT NULL-Feldern, die Sie als COUNT-Funktionsparameter verwenden (dh in Klammern), dieselben Ergebnisse zurückgibt, können Sie COUNT(1) verwenden, um eine Verbesserung zu erzielen Performance. Jetzt muss das Datenbankmodul keine Datenfelder abrufen, sondern ruft nur den ganzzahligen Wert 1 ab.

Beispielsweise, anstatt diese Anweisung einzugeben:

SELECTdept_id,COUNT(*)AStotal

  FROMemployees

WHEREsalary>50000

GROUP BYdept_id;

Sie können COUNT(*) durch COUNT(1) ersetzen, um eine bessere Leistung zu erzielen:

SELECTdept_id,COUNT(1)AStotal

  FROMemployees

WHEREsalary>50000

GROUP BYdept_id;

Jetzt muss die COUNT-Funktion nicht mehr alle Felder aus der Tabelle employees abrufen, wie dies bei Verwendung der COUNT(*) Syntax der Fall war. Es wird lediglich der numerische Wert 1 für jeden Datensatz abgerufen, der Ihren Kriterien entspricht.

Wie viele Datensätze SQL?

Die SQL COUNT-Funktion zählt(COUNT) die Anzahl von ausgewählten Datensätzen. Für diese Aggregatfunktion gibt man einfach das Schlüsselwort COUNT an, inklusive der Spalte der zu zählenden Datensätzen in den Klammern an. Es werden alle Datensätze gezählt, deren Wert nicht NULL ist.

Was macht Count (*) SQL?

COUNT(*) gibt die Anzahl der Zeilen in einer angegebenen Tabelle zurück.

Wann benutzt man Count?

Will man nur die verschiedenen Werte einer Spalte zählen, so benutzt man count(distinct Spaltenname). In diesem Beispiel wollen wir wissen, wie oft Michael Schuhmacher Weltmeister war. Benutzt man diese Befehle, so erhält man die größte/kleinste Zahl, also das Maximum/Minimum der Spalte.

Was macht SELECT Count?

SELECT COUNT(Spalte) FROM Tabelle; Die SQL COUNT-Funktion gibt die Anzahl aller Zeilen an, die den Bedingungen unserer Abfrage entsprechen. COUNT ist eine Aggregatfunktion – in die Klammern der Funktion fügen wir die Namen der Spalten ein, die gezählt werden sollen. Die reguläre COUNT-Funktion ignoriert NULL Werte.