Claudia: groupieren und die anzahl der groupierungen ausgeben

ich habe in meine Datenbank alle Kirchen in Bayern verzeichnet, diese sind unter

id ! name ! ort

abgespeichert.

Wenn ich mir alle orte anzeigen lasse, die eine Kirche haben

SELECT * FROM table GROUP BY ort ORDER BY ort ASC

mache ich das so.

Jetzt würde ich aber gerne noch wissen wie viele Kirchen in den einzelnen Orte sind. Kann ich mir wenn ich groupiere auch die Anzahl der groupierungen anzeigen lassen.

Ich bin schon am verzweifeln.

  1. Hello,

    wie Du dir diverse Groupies nebst Anzahl anzeigen lassen kannst, wird hier diskutiert.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  2. @@Claudia

    Kann ich mir wenn ich groupiere

    Du meinst: croupiere?

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  3. Hallo Claudia,

    Was du suchst, heißt Gruppenwechsel.

    Ob es, weil du ja nur die Anzahl suchst, auch eine inner-sql-Lösung gibt, können dir die Datenbankexperten verraten.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
  4. Hi,

    SELECT * FROM table GROUP BY ort ORDER BY ort ASC
    

    Warnung: die meisten DB-Systeme lassen das nicht zu - wenn gruppiert wird, dürfen normalerweise nur die Spalten der Gruppierung selektiert werden und aggregierte Werte. MySQL ist da eine Ausnahme - die Werte, die nicht gruppierend/aggregiert sind, werden zufällig aus einer der beteiligten Zeile genommen, nicht notwendigerweise alle aus derselben Zeile …

    SELECT count(*), ort FROM table GROUP BY ort ORDER BY ort ASC
    

    count() ist z.B. eine Aggregatsfunktion.

    Mit dieser Query erhältst Du die Orte sowie die Anzahl der Zeilen pro Ort.

    Ach ja: erlaubt mysql "table" als Tabellenname? Üblicherweise sind reservierte Worte als Tabellenname nur dann erlaubt, wenn der Tabellenname escaped ist.

    cu,
    Andreas a/k/a MudGuard

    1. Hello,

      SELECT count(*), ort FROM table GROUP BY ort ORDER BY ort ASC
      

      Ach ja: erlaubt mysql "table" als Tabellenname? Üblicherweise sind reservierte Worte als Tabellenname nur dann erlaubt, wenn der Tabellenname escaped ist.

      Das gibt selbtverständlich einen Fehler, sogar bei MySQL ;-P

      SELECT count(*), `ort` FROM `table` GROUP BY `ort` ORDER BY `ort` ASC;
      

      So wäre es denn erlaubt. Quotierung mit Backticks, nicht mit Apostrophen.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. Hallo TS,

        Wahrscheinlich ist table hier einfach nur irgendeine Tabelle.

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
        1. Hello,

          Wahrscheinlich ist table hier einfach nur irgendeine Tabelle.

          Da wäre ich jetzt aber nicht drauf gekommen, dass es nur ein Platzhalter sein sollte ;-P

          Ich hoffe, der SQL-Parser hat den gleichen Humor!

          Vermutlich sind aber genau diese Darstellungsprobleme der Grund dafür, dass man Lehrunterlagen oft erst nach Jahren richtig versteht. Mit Formeln und Schreibweisen in der Mathematik geht mir das auch immer so.

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
        2. Hi,

          Wahrscheinlich ist table hier einfach nur irgendeine Tabelle.

          naja, es gibt ja genug Leute, die eine Variable, die ein Array enthält, $array nennen oder eine String-Variable $string …

          Da kann table ja durchaus auch mal als Tabellen-Name vorkommen …

          cu,
          Andreas a/k/a MudGuard

  5. Tach!

    Jetzt würde ich aber gerne noch wissen wie viele Kirchen in den einzelnen Orte sind.

    Zählen kann man mit COUNT(). Das zählt auch Gruppeninhalte.

    dedlfix.