COUNT aber wie

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

  • COUNT aber wie

    Steh grad mal wieder n bisschen aufm Schlauch..ich habe folgende Query

    SELECT Verein,Rennen,Boot FROM meldungen GROUP BY Verein,Rennen,Boot;
    da bekomme ich folgendes Ergebnis:
    Verein | Rennen | Boot
    -------- |--------- | ---------
    2 | 1 | 2
    2 | 2 | 1
    2 | 2 | 4
    2 | 3 | 1
    2 | 5 | 2
    2 | 6 | 3
    2 | 7 | 1
    2 | 9 | 1
    3 | 3 | 1
    3 | 3 | 4
    3 | 4 | 3
    3 | 5 | 2
    3 | 6 | 7
    3 | 8 | 2
    3 | 9 | 1
    3 | 9 | 2
    4 | 3 | 1
    4 | 4 | 1
    4 | 9 | 1
    44 | 3 | 4
    44 | 8 | 2
    44 | 8 | 23

    jetzt ist meine Frage wie bekomme ich in SQL raus wie oft zum Beispiel Verein 2 gemeldet ist. Oder kann man das auch anders lösen? Ein Datensatzt besteht aus Verein,Rennen,Boot,Name(Ruderer.ID)

    mfg

  • #2
    Re: COUNT aber wie

    Original geschrieben von krel
    jetzt ist meine Frage wie bekomme ich in SQL raus wie oft zum Beispiel Verein 2 gemeldet ist.
    SELECT COUNT(verein) FROM tabelle GROUP BY verein, rennen?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      wenns denn man so einfach wäre...
      leider bekomme ich dabei folgendes:SELECT COUNT(verein),verein FROM meldungen GROUP BY verein, rennen,Boot
      Count(Verein) | Verein
      5 | 2
      5 | 2
      5 | 2
      9 | 2
      2 | 2
      5 | 2
      5 | 2
      9 | 2
      9 | 3
      9 | 3
      1 | 3
      2 | 3
      5 | 3
      4 | 3
      9 | 3
      9 | 3
      9 | 4
      1 | 4
      9 | 4
      9 | 44
      4 | 44
      4 | 44
      tja jetzt zählt er mir leider wieviele Leute in dem jeweiligen Boot sitzen..Vielleicht mal die Einträge für eine Meldung z.B.
      Verein | Rennen | Boot | Name(ruderer.ID)
      2 | 3 | 1 | 3
      2 | 3 | 1 | 5
      2 | 3 | 1 | 6
      2 | 3 | 1 | 7
      2 | 3 | 1 | 8
      2 | 3 | 1 | 9
      2 | 3 | 1 | 12
      2 | 3 | 1 | 11
      2 | 3 | 1 | 4
      wie ihr seht gibt es in diesem Fall 9 Einträge für eine Meldung.Das sind jetzt alle Leute die in dem gleichen Boot und Rennen sitzen. Wenn ihr euch oben jetzt Zeile 4 anschaut dann seht ihr da die 9 und das sind eben diese 9 Einträge die er mir dann zählt, aber würde gerne die Anzahl der gemeldeten Boote pro Verein wissen..müsste also eigentlich aus der oberen Abfrage nur die Anzahl der oben auftreteten Vereine haben..Jemand ne Idee?

      mfg

      Kommentar


      • #4
        Original geschrieben von krel
        aber würde gerne die Anzahl der gemeldeten Boote pro Verein wissen..müsste also eigentlich aus der oberen Abfrage nur die Anzahl der oben auftreteten Vereine haben.
        Dann zähle Boote, gruppiert nach Verein.

        Anzahl gemeldeter Vereine ergibt sich aus Anzahl gelieferter Datensätze.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ich glaub ich bin heut n bissel nervig...das kommt dem Ergebniss schon näher, aber jetzt sind alle Ruderer pro Verein gezählt, da ein Boot ja aus mehreren Leute besteht und diese auch jeweils eingetragen sind zählt er die und ich kann das auch nicht einfach teilen, da die Boote verschiedene Größen haben..
          momentan bekomme ich das:
          COUNT(Boot)|Verein
          45 2
          48 3
          19 4
          17 44
          möchte aber das hier haben:
          COUNT(...)|Verein
          8 2
          8 3
          3 4
          3 44
          kann das zwar auch in PHP machen aber das muss doch auch direkt gehen, oder?Wenns gar nicht gar muss ich halt noch ne weitere Tabelle anlegen...

          mfg

          Kommentar


          • #6
            Gibt es keine Antwort auf diese Frage bzw ist das nicht möglich, oder werd ich grad n bissel ignoriert Das muss doch irgendwie möglich sein, hab jetzt schon soviel ausprobiert aber bislang hat davon noch nichts funktioniert..
            Ideen?

            mfg

            Kommentar


            • #7
              Dann gruppier halt nach Verein und Rennen und schau Dir die Anzahl gelieferter Datensätze an. Tipp für's nächste Mal: Formuliere Dein Problem präzise, dann kommst Du auch viel schneller auf die Lösung.

              Kommentar


              • #8
                mmh dachte eigentlich, dass ich präzise genug war, aber so kann man sich täuschen..ich versuchs nochmal: Ich möchte zählen wieviele verschiedene Boote ein Verein in den verschiedenen Rennen hat.. heißt soviel wie:ein Datensatz ist nur über Verein UND Rennen UND Boot (bzw der ID, da mehrere Einträge mit gleichem Verein und Rennen und Boot vorhanden)eindeutig definiert. Jetzt ist die Frage, kann ich irgendwie das ganze zählen, so wie ich das schon oben beschrieben habe, oder kann ich mein GROUP BY irgendwie in das SELECT einbauen, weil dann wäre zählen ja einfacher. Oder muss ich meine Tabelle doch umstrukturieren. Hoffe, dass ihr dass jetzt alle versteht, sonst fragt doch einfach..

                mfg

                Kommentar


                • #9
                  Hi,

                  wenn Du die Meldungen für einen bestimmten Verein herausbekommen willst, reicht doch Dein eingangs genannter Query erweitert um eine WHERE-Klausel:

                  SELECT Verein FROM meldungen WHERE Verein = 2 GROUP BY Verein,Rennen,Boot;

                  Die Anzahl der gefundenen Datensätze entspricht dann der Anzahl der Meldungen für Verein 2.


                  möchte aber das hier haben:
                  COUNT(...)|Verein
                  8 2
                  8 3
                  3 4
                  3 44
                  Wenn das unbedingt sein muss, probiers mal mit:

                  count(distinct verein,rennen,boot) und gruppiere nach verein.

                  Viele Grüße

                  Kommentar


                  • #10
                    danke, das ist genau das was ich gebraucht habe..hab das mit distinct auch schon probiert nur mit der falschen Syntax. Diese Abfrage ist zwar nur n kleiner Teil was ich so brauche, aber das hat mich total genervt, dass das nicht geklappt hat..
                    Danke

                    mfg

                    Kommentar

                    Lädt...
                    X