mysql: GROUP - relative Datensätze zählen
bioland
- datenbank
Hi!
habe ein Statement:
SELECT COUNT(*) FROM users ORDER BY name
Dies funktioniert wie es soll.
Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle gibt, allerdings OHNE Doppelte Ergebnisse!
Hat jemand eine Idee ob bzw. wie man soetwas umsetzen könnte?
Schöne Grüße
Hi,
Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle gibt, allerdings OHNE Doppelte Ergebnisse!
DISTINCT oder GROUP BY.
MfG ChrisB
Hi,
Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle gibt, allerdings OHNE Doppelte Ergebnisse!
DISTINCT oder GROUP BY.
MfG ChrisB
Also ich habe jetzt folgendes gemacht:
SELECT COUNT(DISTINCT name), geburtstag FROM users
Ist diese Kombination von COUNT-Distinct gesund hinsichtlich Performance?
Ich verstehe nämlich noch nicht ganz, wie die Abfrage genau verläuft.
Ist das so eine Art Subselect?
Hi!
SELECT COUNT(DISTINCT name), geburtstag FROM users
Ist diese Kombination von COUNT-Distinct gesund hinsichtlich Performance?
Ist es mit einer relevant großen Menge getestet ausreichend schnell? Dann ist es nicht die Mühe wert, weitere Forschungen anzustellen, weil das keine sichtbaren Verbesserungen bringt.
Ich verstehe nämlich noch nicht ganz, wie die Abfrage genau verläuft.
Ist das so eine Art Subselect?
Nein, das ist so eine Art merken, welcher Namen schon gezählt wurde.
Lo!
Nein, das ist so eine Art merken, welcher Namen schon gezählt wurde.
Lo!
Sehr gute Erklärung.
Vielen Dank euch beiden!
Eine Bemerkung zu dieser Frage.
Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle gibt, allerdings OHNE Doppelte Ergebnisse!
Mit einem gescheiten Design der Datenbank sollte eigentlich kein einziger User doppelt in der Tabelle vorkommen. Was verbirgt sich hinter deiner Frage?
Hä? Verstehe nicht worauf du hinaus willst.
Will wissen, wieviele unterschiedliche Namen bei mir registriert sind.
Was hat das mit Design zu tun? Und wieso darf kein User doppelt vorkommen?
Was verbirgt sich hinter dieser Antwor?
Hi,
Will wissen, wieviele unterschiedliche Namen bei mir registriert sind.
Was hat das mit Design zu tun? Und wieso darf kein User doppelt vorkommen?
Umgekehrt: Wieso darf ein Datensatz mit ein und dem selben Namen mehrfach vorkommen?
Was verbirgt sich hinter dieser Antwor?
Eine Rückfrage, die sich auf dein auf den ersten Blick zumindest merkwürdig erscheinendes, wahrscheinlich sogar fehlerhaftes Datenmodell bezieht.
MfG ChrisB
Hi,
Will wissen, wieviele unterschiedliche Namen bei mir registriert sind.
Was hat das mit Design zu tun? Und wieso darf kein User doppelt vorkommen?Umgekehrt: Wieso darf ein Datensatz mit ein und dem selben Namen mehrfach vorkommen?
Was verbirgt sich hinter dieser Antwor?
Eine Rückfrage, die sich auf dein auf den ersten Blick zumindest merkwürdig erscheinendes, wahrscheinlich sogar fehlerhaftes Datenmodell bezieht.
MfG ChrisB
Der Datensatz wird doch nicht über seinen Namen identifiziert. Es ist der Vorname der Benutzer, kein key. Im übrigen ist es nur ein Beispiel für eine
nichtexistierende Datenbank, quasi eine reine Verständnisfrage.
Hier nochmal:
Hans
Peter
Frank
Frank
Ich will nur wissen, wieviele Namen existieren. In diesem Beispiel: 3
Ich hätte die Frage auch ganz anders stellen können, z.B.:
Wieviele unterschiedliche Geburtstage gibt es?
10.05.1985
11.02.1985
10.05.1985
Die Antwort hier wäre: 2
Alles klar soweit? ;)
Und wieso darf kein User doppelt vorkommen?
Deine Frage klingt nicht als wolltest du wissen wie viele "Peter Müller" es irgendwo gibt, es sah eher aus als sollte der Name evtl. ein eindeutiger Wert zur Identifikation eines Users sein.
Da wärs dann sinnlos nach doppelten zu suchen. Oder andersrum, wenn es doch doppelte gibt könnte dein Design nicht passen.
Und wieso darf kein User doppelt vorkommen?
Deine Frage klingt nicht als wolltest du wissen wie viele "Peter Müller" es irgendwo gibt, es sah eher aus als sollte der Name evtl. ein eindeutiger Wert zur Identifikation eines Users sein.
Da wärs dann sinnlos nach doppelten zu suchen. Oder andersrum, wenn es doch doppelte gibt könnte dein Design nicht passen.
Nein, ich will wissen: WIEVIELE NAMEN GIBT ES?
Also ein Beispiel:
Hans
Peter
Peter
Frank
Das Ergebnis wäre: 3
Und wieso darf kein User doppelt vorkommen?
Deine Frage klingt nicht als wolltest du wissen wie viele "Peter Müller" es irgendwo gibt, es sah eher aus als sollte der Name evtl. ein eindeutiger Wert zur Identifikation eines Users sein.
Da wärs dann sinnlos nach doppelten zu suchen. Oder andersrum, wenn es doch doppelte gibt könnte dein Design nicht passen.
Ich habe es übrigens schon richtig gefragt:
"Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle
gibt, allerdings OHNE Doppelte Ergebnisse!"
ist nicht dasselbe wie:
"Ich möchte wissen, WELCHE User es gibt...."
Hi,
Ich habe es übrigens schon richtig gefragt:
Nein, hast du nicht.
"Allerdings möchte ich nun wissen, wieviele User es in der ganzen Tabelle
gibt, allerdings OHNE Doppelte Ergebnisse!"ist nicht dasselbe wie:
"Ich möchte wissen, WELCHE User es gibt...."
Und ein Vorname ist üblicherweise nicht gleichbedeutend mit einem Nutzer.
MfG ChrisB