Mehrere Kategorien zählen - COUNT() + GROUP ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere Kategorien zählen - COUNT() + GROUP ?

    Hallo,

    es existiert eine Tabelle namens "daten":

    id INT()
    kategorie ENUM('wohnung','haus','garage')

    Nun möchte ich pro Kategorie gerne die Anzahl der Datensätze als Wert haben:

    wohnung (28)
    haus (39)
    garage (12)

    Wie muss die Abfrage aussehen? So wohl eher nicht:

    SELECT COUNT(kategorie) FROM daten GROUP BY kategorie

    Die Werte sollten nach Möglichkeit auch gleich in passenden Strings auftauchen... $row['wohnung'] + $row['haus'] usw.

  • #2
    Re: Mehrere Kategorien zählen - COUNT() + GROUP ?

    Original geschrieben von Truncate
    So wohl eher nicht:

    SELECT COUNT(kategorie) FROM daten GROUP BY kategorie
    Probier's halt mal aus. Grundsätzlich spricht nichts dagegen.
    Gruss
    H2O

    Kommentar


    • #3
      Die verschiedenen Ausprägungen eines Feldes kannst du normalerweise mit DISTINCT herausbekommen. Wie das bei einem ENUM Feld funktioniert, kann ich dir leider nicht sagen.

      In PostgreSQL kann man folgendes machen:

      Code:
      SELECT DISTINCT kategorie, count (kategorie)
      FROM daten
      GROUP BY kategorie

      Kommentar


      • #4
        Also DISTINCT ist in diesem Falle ja wohl eher überflüssig ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Original geschrieben von goth
          Also DISTINCT ist in diesem Falle ja wohl eher überflüssig ...
          Nicht nur überflüssig, sondern falsch.
          Und das mit den entsprechend benannten Strings geht natürlich nicht, da die Attribut- oder Resultat-Bezeichnung natürlich für jede Zeile die gleiche ist.
          Gruss
          H2O

          Kommentar


          • #6
            Original geschrieben von H2O
            Nicht nur überflüssig, sondern falsch.
            Und das mit den entsprechend benannten Strings geht natürlich nicht, da die Attribut- oder Resultat-Bezeichnung natürlich für jede Zeile die gleiche ist.
            Dem muss ich wohl nach studium des mysql handbuches zustimmen. ich kannte den enum typen nicht, und in der tat macht distinct da natürlich keinen sinn.

            $row['wohnung'] + $row['haus']
            Da der Threadstarter ja wohl mit PHP arbeitet würde ich ihm vorschlagen, einfach mal die Kommentare zu dem enum typ in der mysql dokumentation durchzulesen. Da stehen einige wertvolle tipps zum enum und php drin.

            Kommentar

            Lädt...
            X