zusammenzählen, mehrerer COUNT(*) innerhalb SELECT
Moritz
- datenbank
ich zähle während eine SELECT Abfrage über count(*) AS ergebniss
einen Wert.
...SELECT count(*) AS ergebniss FROMTABLE WHERE...
Die Datensätze gebe ich anschliessend über eine WHILE Schleife aus.
Wenn ich aber den gesamten WERT aller count(*) AS ergebniss
haben möchte also eine Zahl(Total).
kann ich entweder in meiner Schleife alles zusammenzählen
while ($ausgabe = mysql_fetch_object($result))
{
$total=$total+$ausgabe->ergebniss;
.
.
.
}
oder aber...
Ich würde das Ergebnis gerne vor meiner Schleife schon haben, also müsste ich das zusammenzählen der einzelnen count(*) AS ergebniss
schon in meinem SELECT Befehl ausführen.
Geht das irgendwie?
Moritz
Hi,
Ich würde das Ergebnis gerne vor meiner Schleife schon haben, also müsste ich das zusammenzählen der einzelnen
count(*) AS ergebniss
schon in meinem SELECT Befehl ausführen.Geht das irgendwie?
MySQL kennt für GROUP BY den Modifier WITH ROLLUP, der dir für die verwendeten Aggregatfunktion(en) auch noch mal das Ergebnis über der gesamten Gruppe liefert.
Allerdings gibt’s diesen Wert immer erst nach den gruppierten Werten, und ORDER BY lässt sich zusammen mit dem Modifier nicht verwenden – aber kann man ja einfach noch ein SELECT drumherum schachteln, dass die Datensätze in der gewünschten Reihenfolge liefert (also die NULL, die in der Rollup-Spalte als Wert der Gruppierungsspalte geliefert wird, nach oben sortieren lassen).
MfG ChrisB
Hallo,
Ich würde das Ergebnis gerne vor meiner Schleife schon haben, also müsste ich das zusammenzählen der einzelnen
count(*) AS ergebniss
schon in meinem SELECT Befehl ausführen.
Du hast leider nicht verraten, wie deine WHERE Bedingung aussieht, evtl. hilft dir ein einfaches GROUP BY:
SELECT column, count(*) FROM table GROUP BY column
vg ichbinich