Zählen von doppelten Einträgen

Das zählen von doppelten Einträgen wird wichtig, wenn die Tabellenstruktur nicht optiomal gewählt wurde “unique” oder “Primary”, oder andere Datenbanken Importiert werden mussten um diese dann auszuwerten. Hier können wir herausfinden wie oft eine Person in der Tabelle existiert

Nehmen Wir an wir haben eine Tabelle mit folgenden Inhalt:

> SELECT * FROM tabelle1
-----------------------------
| id  | name      | staus   |
-----------------------------
| 1   | Frank     | 3       |
| 2   | Anna      | 3       |
| 3   | Marie     | 3       |
| 4   | Otto      | 3       |
| 5   | Henry     | 2       |
| 6   | Frank     | 3       |

Die Abfrage würde folgendes Ergebniss liefern:

> SELECT id,name,staus AS sta,COUNT(*) as anz
  FROM tabelle1
  WHERE sta = 3
  GROUP by name;
---------------------------------
| id  | name      | sta   | anz |
---------------------------------
| 1   | Frank     | 3     | 2   |
| 2   | Anna      | 3     | 1   |
| 3   | Marie     | 3     | 1   |
| 4   | Otto      | 3     | 1   |

Durch die Group Funktion wurden alle Zeilen die den gleichen Namen “name” haben zu einer Zeile zusammengefasst, und mittels COUNT(*) die Anzahl der zusammengefassten Zeilen gezählt.
WICHTIG !!
Die erste gefundene Zeile wird behalten und nur der Wert “anz” also COUNT(*) erhöht.

Dazu mal ein anderen Bespiel.

> Select * FROM tabelle1 WHERE status = 3;
--------------------------------------
| id  | vorname   | name    | status |
--------------------------------------
| 1   | Frank     | Müller  | 3      |
| 2   | Anna      | Stein   | 3      |
| 3   | Marie     | Olsan   | 3      |
| 4   | Otto      | Walks   | 3      |
| 5   | Henry     | Maskar  | 3      |
| 6   | Frank     | Polar   | 3      |
> SELECT id,vorname,name,staus AS sta,COUNT(*) as anz
  FROM tabelle1
  WHERE sta = 3
  GROUP by vorname;
-----------------------------------------
| id  | vorname   | name    | sta | anz |
-----------------------------------------
| 1   | Frank     | Müller  | 3   | 2   |
| 2   | Anna      | Stein   | 3   | 1   |
| 3   | Marie     | Olsan   | 3   | 1   |
| 4   | Otto      | Walks   | 3   | 1   |
| 5   | Henry     | Maskar  | 3   | 1   |

Wie in deisem Beispiel zu sehen ist, wurde der Vorname “Frank” 2x gefunden anz=2, jedoch der erste Name “Müller” wurde hierbei behalten.

Datum: Mittwoch, 30. November 2011 8:40 Select Querys
Diesen Artikel kommentieren

Ein Kommentar

  1. 1

    Tolle Hinweise! Ich werde mich damit in Zukunft mehr auseinandersetzen! Warte auf weitere Posts!

Kommentar abgeben