Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

COUNT im GROUP BY

Empfohlene Antworten

Veröffentlicht

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.