tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1037
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Roland Deschain Roland Deschain ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    51
    Das ist vermutlich eher eine Anfängerfrage, habe aber über die Suchfunktion nichts brauchbares gefunden :

    Ich habe eine MySQL-Tabelle, in der es (vereinfacht) Titel, Kategorien und Hauptkategorien gibt. Jeden Titel (oder zumindest ID) gibt es nur einmal. Um heraus zu bekommen, wie viele Titel eingetragen sind kann ich ja folgende Abfrage machen "SELECT count(*) AS anzahl FROM tabelle".

    Wie aber bekomme ich heraus, wie viele Katagorien und wie viele Hauptkategorien es gibt? Jeder Titel gehört einer Kategorie und einer Hauptkategorie an. Beide gibt es mehrfach, aber mehr Kategorien als Hauptkategorien, so in etwa:

    Titel 1, Kategorie a, Hauptkategorie A
    Titel 2, Kategorie a, Hauptkategorie A
    Titel 3, Kategorie b, Hauptkategorie B
    Titel 4, Kategorie b, Hauptkategorie B
    Titel 5, Kategorie c, Hauptkategorie B
    Titel 6, Kategorie c, Hauptkategorie B
     

  2. #2
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Code :
    1
    
    SELECT kategorie, COUNT(id) AS anzahl FROM tabelle GROUP BY kategorie

    liefert Dir alle Kategorien nebst der Anzahl der Titel. Mit den Hauptkategorien kannst Du's natürlich genauso machen.

    LG
     

  3. #3
    Roland Deschain Roland Deschain ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    51
    Zitat Zitat von kuddeldaddeldu Beitrag anzeigen
    Hi,

    Code :
    1
    
    SELECT kategorie, COUNT(id) AS anzahl FROM tabelle GROUP BY kategorie

    liefert Dir alle Kategorien nebst der Anzahl der Titel. Mit den Hauptkategorien kannst Du's natürlich genauso machen.

    LG
    Das hatte ich so auch schon versucht, aber ich bekomme dann einen Wert pro Kategorie. Im Beispiel wäre das:

    Kategorie a, 2
    Kategorie b, 2
    Kategorie c, 2

    bzw.

    Hauptkategorie A, 2
    Hauptkategorie B, 4

    Was ich benötige ist die Anzahl der Kategorien, also auf das Beispiel bezogen als Ergebnis "3", wenn ich nach Kategorie suche und "2", wenn ich nach der Hauptkategorie suchen würde. Oder geht das nur mit einer Programmiersprache, die das Ergebnis in einer Schleife ausliest und weiterverarbeitet (ich nutze PHP)?
     

  4. #4
    Tarik_BS Tarik_BS ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    5
    Hallo,

    Extra Programmieren brauchst Du es nicht, probier es einfach mit der Dir schon bekannten SELECT-Anweisung (bloß ohne COUNT- Anweisung) als Unterabfrage aus, also:

    SELECT Count (Hauptkategorie) AS [Anzahl Hauptkategorien]
    FROM (SELECT Hauptkategorie FROM tabelle GROUP BY Hauptkategorie);

    Höffetlich hilft es Dir,

    Grüße aus Braunschweig
     

  5. #5
    Roland Deschain Roland Deschain ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    51
    Zitat Zitat von Tarik_BS Beitrag anzeigen
    Hallo,

    Extra Programmieren brauchst Du es nicht, probier es einfach mit der Dir schon bekannten SELECT-Anweisung (bloß ohne COUNT- Anweisung) als Unterabfrage aus, also:

    SELECT Count (Hauptkategorie) AS [Anzahl Hauptkategorien]
    FROM (SELECT Hauptkategorie FROM tabelle GROUP BY Hauptkategorie);

    Höffetlich hilft es Dir,

    Grüße aus Braunschweig
    Ja, gab noch eine Fehlermeldung, aber

    SELECT Count (Hauptkategorie) AS [Anzahl Hauptkategorien] FROM (SELECT Hauptkategorie FROM tabelle GROUP BY Hauptkategorie) AS a;

    funktioniert. Danke!
     

  6. #6
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    sorry, hatte nicht genau genug gelesen. Ich dachte Du wolltest wissen, wieviele Titel jede Kategorie hat. Die Anzahl der Kategorien könntest Du auch ganz ohne Gruppierung, Subselect usw. bekommen: SELECT COUNT(DISTINCT Kategorie) AS anzahl FROM tabelle

    LG
     

  7. #7
    Roland Deschain Roland Deschain ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Beiträge
    51
    Das ist in der Tat einfacher... vielen Dank.
     

Ähnliche Themen

  1. Zählen mit Count geht nicht
    Von QUEST08 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 25.07.08, 08:58
  2. Antworten: 3
    Letzter Beitrag: 15.01.08, 19:52
  3. mysql - Inhalte von Kategorien+Unterkategorien zählen
    Von fiacyberz im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 04.09.07, 19:46
  4. Einträge aus Kategorien zählen
    Von tommy1967 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 31.01.06, 15:18
  5. Anzahl der Kategorien zählen
    Von DaRula im Forum PHP
    Antworten: 7
    Letzter Beitrag: 21.07.02, 23:20