SUM(DISTINCT expr) ??

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

  • SUM(DISTINCT expr) ??

    hallo ..

    was ich brauche:
    ich habe einen query mit dem ich ein paar rows zurückgeliefert bekommen, jetzt würd ich ganz gerne die zahlen mit sum() zusammenzählen, aber die zahl nur jeweils einmal, quasi ein distinct öä
    von der tabellenstruktur her kann ich der spalte kein unique verpassen, muss so sein (=

    was ich probiert habe:
    mysql manual => select sum(distinct expr) geht nicht - jammerschade
    select sum(select distinct ...) geht auch nicht
    select in (select distinct expr) oder ähnliche versuche scheiterten auch

    wer mir helfen kann:
    hoffentlich DU - bitte
    mfg,
    [color=#0080c0]Coragon[/color]

  • #2
    könnte passen...
    Code:
    SELECT distinct sum(expr) summe FROM tabelle;
    sollte klappen ....
    Code:
    SELECT distinct expr nurso, sum(expr) summe FROM tabelle GROUP BY nurso;
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      zu a) .. hatte ich schon versucht (, aber vergessen zu erwähnen) ändert gar nichts am ergebnis

      b) ändert auch gar nichts :/

      danke für die vorläufige mühe, ich werd mir dann morgen die hoffentlich weiteren vorschläge ansehen

      gute nacht
      mfg,
      [color=#0080c0]Coragon[/color]

      Kommentar


      • #4
        http://www.mysql.com/doc/de/TODO_future.html tut kund:
        2.8.2 Dinge, die in naher Zukunft erledigt werden müssen
        [...]
        Add SUM(DISTINCT)
        sieht leider schlecht aus, da hilft nur ein würgaround

        probier mal
        Code:
        SELECT
          DISTINCT z1.zahl, 
          SUM(z1.zahl) summe
        FROM 
          zahlen z1 
        GROUP BY NULL
        bei mir und meiner kleinen testtabelle kommt das richtige ergebnis raus
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          probier mal
          ist das nicht das gleiche in grün, wie meine zweite query?

          oder klappt das nur, weil du GROUP BY NULL verwendet hast?
          wieso NULL?
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            das klappt, weil ich nach einem nicht existenten wert gruppieren lasse

            GROUP BY 'unddannisdiemilchsauergeworden' würde genauso gehen

            bei dir hat er ja was zum gruppieren und daher kommt ein falsches ergebnis raus
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              mhm. dann will ich dir das mal so glauben ...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                das will ich auch mal hoffen
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    probeweise klappts wirklich, hoffentlich auch noch wenn ichs in die große query einbaue (= ich geb bescheid danke vorerst euch beiden
                    mfg,
                    [color=#0080c0]Coragon[/color]

                    Kommentar


                    • #11
                      ich habe ein ähnliches problem, nur mehrere tabellen:
                      PHP-Code:
                      SELECT k.namek.vorname
                      COUNT(DISTINCT ke.spieltag) AS einsaetze
                      SUM(ke.einsatz_ende ke.einsatz_start) AS minuten
                      SUM(ke.gelb) AS gelbe
                      SUM(ke.gelbrot) AS gelbrote
                      SUM(ke.rot) AS rote
                      SUM(t.tore) AS goals 
                      FROM  kader k 
                      LEFT JOIN torschuetzen t ON t
                      .spieler_id k.id 
                      INNER JOIN kader_einsatz ke ON ke
                      .spieler_id k.id 
                      GROUP BY k
                      .id 
                      ORDER BY k
                      .namek.vorname 
                      name, vorname und einsaetze wird richtig angegeben.
                      tore und minuten leider nicht (bei den restlichen habe ich noch keine werte).
                      ich habe das obere beispiel auf t.tore versucht. hat nicht geklappt. wahrscheinlich auch, weil ich das group by drinnen lassen muß.

                      kann mir jemand einen tipp geben?

                      Kommentar

                      Lädt...
                      X