Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage mit SUM

Einklappen

Neue Werbung 2019

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

  • SQL Abfrage mit SUM

    Hallo liebe Leute,

    ich habe wiedermal ein kleines Problem. Ich habe folgende Abfrage,und Sie funktioniert auch
    PHP-Code:
    $sql_gesamt=mysql_query("SELECT  Team, Rennen , SUM(Punkte) AS Best8 FROM mannschaft

     WHERE (SELECT COUNT(*) FROM mannschaft AS t WHERE t.Team=mannschaft.Team AND t.Punkte >= mannschaft.Punkte) <=8
                                       GROUP BY  Team



                                       ORDER BY Best8 DESC





                                        "
    )  OR DIE (mysql_error()); 
    Nun möchte ich es so ändern, das die Summe nur aus den besten 8 Ergebnissen gebildet wird. So das die Ergebnisse die mehr sind nicht berücksichtigt werden.
    Jetzt werden die, die mehr als 8 Ergebnisse haben ausgeblendet.

    Hat Jemand einen Hinweis oder eine Idee?

    Vielen Dank im Voraus


  • #2
    Och komm schon, sum of top n sql bei Google eingeben?
    GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

    Kommentar


    • #3
      Zitat von ChristianK Beitrag anzeigen
      Och komm schon, sum of top n sql bei Google eingeben?
      Das hatte ich schon leider reicht mein Verständnis nicht aus um die Summe nur aus den Top 8 zu bilden.

      Kommentar


      • #4
        Wie definieren sich die besten 8 Ergebnisse? Anhand der Punkte?

        Dann machst du einen Query, der dir die 8 besten Ergebnisse holt (Order By, Limit) und danach bildest du die Summe davon.

        Das benötigt vermutlich einen Subquery dazu.
        GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

        Kommentar


        • #5
          Zitat von Cyclestores Beitrag anzeigen
          Hallo liebe Leute,

          ich habe wiedermal ein kleines Problem. Ich habe folgende Abfrage,und Sie funktioniert auch
          PHP-Code:
          $sql_gesamt=mysql_query("SELECT  Team, Rennen , SUM(Punkte) AS Best8 FROM mannschaft

           WHERE (SELECT COUNT(*) FROM mannschaft AS t WHERE t.Team=mannschaft.Team AND t.Punkte >= mannschaft.Punkte) <=8
                                             GROUP BY  Team



                                             ORDER BY Best8 DESC





                                              "
          )  OR DIE (mysql_error()); 
          Das SQL ist syntaktisch falsch.

          Nun möchte ich es so ändern, das die Summe nur aus den besten 8 Ergebnissen gebildet wird.
          Die besten 8 Ergebnisse je Team, oder? Tausche MySQL gegen eine DB, die analytische Funktionen (Window-Funktionen) kann, z.B. PostgreSQL. Damit ist das trivial.
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar


          • #6
            Zitat von akretschmer Beitrag anzeigen
            Das SQL ist syntaktisch falsch.



            Die besten 8 Ergebnisse je Team, oder? Tausche MySQL gegen eine DB, die analytische Funktionen (Window-Funktionen) kann, z.B. PostgreSQL. Damit ist das trivial.
            Leider bietet mein Provider nur eine SQL Umgebung.

            Kommentar


            • #7
              Zitat von Cyclestores Beitrag anzeigen
              Leider bietet mein Provider nur eine SQL Umgebung.
              Bitte was?

              Notfalls frag mich.
              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

              Kommentar


              • #8
                Zitat von akretschmer Beitrag anzeigen
                Bitte was?

                Notfalls frag mich.

                Ich frage dich

                Kommentar

                Lädt...
                X