Q.: Ergebnis gruppieren/zählen

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!

  1. 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...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. 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.

      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.

      1. 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.