Ergebnis gruppieren/zählen
Q.
- datenbank
Hi,
kann ich in einer Abfrage (mysql) gleichzeitig zum Ergebnis auch die gleichen Unterergbnisse einer Spalte zählen?
Beispiel:
Wenn ich als Ergebnis einer Abfrage 20 Zeilen erhalte und eine meiner Ergenisspalten wäre "Ampelfarben", könnte ich dann die Abfrage schon so gestalten, daß zugleich mitgezählt wird, wieviele dieser 20 Zeilen rot, gelb oder grün in der Spalte "Ampelfarben" haben?
Grüße, Q.
P.S: Warum bekomm ich eigentlich immer die Forenfehlermeldung: "Das Format Ihres Postings scheint unsauber zu sein (z. B. keine Zeilenumbrüche, keine Satzzeichen, alles klein geschrieben oder ähnliches). Solche Postings sind ungern gesehen, da sie oft schwer zu lesen sind. Sind Sie sicher, dass Sie so posten möchten?"
Ich versuche wirklich immer, möglichst leserlich zu formatieren!
n'abend,
Hi,
kann ich in einer Abfrage (mysql) gleichzeitig zum Ergebnis auch die gleichen Unterergbnisse einer Spalte zählen?
Wie definierst du »Unterergebnisse«?
Wenn ich als Ergebnis einer Abfrage 20 Zeilen erhalte und eine meiner Ergenisspalten wäre "Ampelfarben", könnte ich dann die Abfrage schon so gestalten, daß zugleich mitgezählt wird, wieviele dieser 20 Zeilen rot, gelb oder grün in der Spalte "Ampelfarben" haben?
Vielleicht willst du das etwas detailreicher illustrieren. Mit Demo-Daten vielleicht?
Wenn ich dich richtig interpretiere Sieht deine Ergebnismenge etwa so aus:
ROT | daten | daten | daten
GRÜN | daten | daten | daten
ROT | daten | daten | daten
GELB | daten | daten | daten
GRÜN | daten | daten | daten
GRÜN | daten | daten | daten
Und du möchstest nun - vorzugsweise in der selben Query, die dir auch obige Ergebnismenge liefert die Infos COUNT("ROT") = 2, COUNT("GELB") = 1, COUNT("GRÜN") = 3 haben. Sollte das dem entsprechen, was du dir vorstellst, muss ich dich enttäuschen - das ist nicht sinnvoll machbar.
P.S: Warum bekomm ich eigentlich immer die Forenfehlermeldung: "Das Format Ihres Postings scheint unsauber zu sein (z. B. keine Zeilenumbrüche, keine Satzzeichen, alles klein geschrieben oder ähnliches). Solche Postings sind ungern gesehen, da sie oft schwer zu lesen sind. Sind Sie sicher, dass Sie so posten möchten?"
Das ist Krusewitz'scher Humor. Einfach ignorieren, machen wir auch nicht anders ;)
weiterhin schönen abend...
Wenn ich dich richtig interpretiere Sieht deine Ergebnismenge etwa so aus:
ROT | daten | daten | daten
GRÜN | daten | daten | daten
ROT | daten | daten | daten
GELB | daten | daten | daten
GRÜN | daten | daten | daten
GRÜN | daten | daten | datenUnd du möchstest nun - vorzugsweise in der selben Query, die dir auch obige Ergebnismenge liefert die Infos COUNT("ROT") = 2, COUNT("GELB") = 1, COUNT("GRÜN") = 3 haben. Sollte das dem entsprechen, was du dir vorstellst, muss ich dich enttäuschen - das ist nicht sinnvoll machbar.
Hallo Globe,
ja, genau DAS wollte ich machen. Ok, nicht sinnvoll machbar.
Andere Frage:
Wenn folgende Abfrage nachstehendes Ergebnis liefert:
SELECT * FROM tabelle\_Bewertungen
ROT | daten | daten | daten1
GRÜN | daten | daten | daten1
ROT | daten | daten | daten1
GELB | daten | daten | daten1
GRÜN | daten | daten | daten2
GRÜN | daten | daten | daten2
ROT | daten | daten | daten1
GRÜN | daten | daten | daten1
ROT | daten | daten | daten1
GELB | daten | daten | daten1
GRÜN | daten | daten | daten2
GRÜN | daten | daten | daten2
Gibt es (bereits in der Abfrage) eine sinnvolle Möglichkeit, folgende Abfragen (und das fehlende "MAX") zu verbinden:
a) Wer hat die meisten Einträge? (Antwort: Daten1)
SELECT SpielerID, COUNT(*) FROM tabelle_Bewertungen GROUP BY SpielerID Ein "MAX" weiß ich hier leider nicht sinnvoll einzufügen.
b) Für diese maximal vorkommende SpielerID die "Ampelwerte" hochzuzählen?
SELECT Ampelfarbe, COUNT(*) FROM tabelle_Bewertungen where SpielerID=2 GROUP BY Ampelfarbe
Hoffe, ich habe mich um diese Uhrzeit noch einigermaßen verständlich machen können ;-)
Grüße, Q.
Gibt es (bereits in der Abfrage) eine sinnvolle Möglichkeit, folgende Abfragen (und das fehlende "MAX") zu verbinden:
a) Wer hat die meisten Einträge? (Antwort: Daten1)
SELECT SpielerID, COUNT(*) FROM tabelle_Bewertungen GROUP BY SpielerID Ein "MAX" weiß ich hier leider nicht sinnvoll einzufügen.b) Für diese maximal vorkommende SpielerID die "Ampelwerte" hochzuzählen?
SELECT Ampelfarbe, COUNT(*) FROM tabelle_Bewertungen where SpielerID=2 GROUP BY Ampelfarbe
Bin inzwischen wieder einen Schritt weiter gekommen.
https://forum.selfhtml.org/?t=163092&m=1061843
Hoffe, das ist rein foren-benimm-technisch ok, hier nen cut zu machen, es entsprechend zu verlinken und und mit neuer Fragestellung weiterzuarbeiten?
Grüße, Q.