Zum Inhalt springen

COUNT im GROUP BY


Krain

Empfohlene Beiträge

Hallo zusammen,

Ich stehe momentan auf dem Schlauch und hoffe, dass ihr mir weiterhelfen könnt.

Ich verwende eine MySQL-Datenbank, Version habeich gerade nicht im Kopf

Zu meinem Problem:

Ich habe eine Benutzertabelle und eine Rangtabelle, die über die Rang-Id im Benutzer verknüpft sind. Also jeder Benutzer kann nur einen Rang haben.

Jetzt möchte ich mittels SQL alle Nutzer mit Rängen auslesen, gruppiert nach Rängen.

SELECT COUNT(rank_id) AS count,rank_id,rank_title, username FROM usertabelle
LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id
GROUP BY rank_id, username
HAVING rank_id IS NOT NULL [/PHP]

Ich hoffte eigentlich mit dem Count die Anzahl der User mit diesem Rang auslesen zu können, das funktioniert aber nicht. Muss ich für jeden Rang eine einzelne Abfrage starten um die Anzahl der User mit diesem Rang herauszufinden, oder läßt sich das auch irgentwie in meine Abfrage mit einbinden? (Mir ist klar, dass dieses Feld dann mehrmals mit der selben Zahl auftreten würde, aber das ist mir egal, da ich den Rang ohnehin nur einmal in ein Array wegschreibe.)

Ich hoffe ihr könnt mir weiterhelfen

Gruss

markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

SELECT COUNT(username) AS count,rank_id,rank_title FROM usertabelle

LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id

GROUP BY rank_id, rank_title

HAVING rank_id IS NOT NULL

So kannst du abfragen wieviel User in einem Rank sind. In einem anderen Select kannst du dann abfragen welcher User in welchem Rank ist. Aber ich würde das nicht zusammenwerfen, da du sonst wie du schon sagtest vieles doppelt hast.

Wenn du es trotzdem machen willst funktioniert unter Oracle sowas hier, ob allerdings unter mysql ein Select im Select so geht weiß ich nicht...:

SELECT username, rank_id,rank_title, (select count(a.user_rank) from usertabelle a where a.user_rank = rangtabelle.rank_id) as count FROM usertabelle

LEFT JOIN rangtabelle ON usertabelle.user_rank = rangtabelle.rank_id

where rank_id IS NOT NULL

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...