Abfrage sortieren nach Count Ergebniss

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

  • Abfrage sortieren nach Count Ergebniss

    Hallo,

    ist zum Beispiel in dieser Abfrage möglich, das Ergebniss sortiert nach der Anzahl der Counts auszugeben?

    SELECT
    `t1_cod4_join_1000`.`join_nick`,
    `t1_cod4_join_1000`.`join_key`,
    Count(`t1_cod4_ktemp_1000`.`ktemp_killer`)
    FROM
    `t1_cod4_join_1000`
    Left Join `t1_cod4_ktemp_1000` ON `t1_cod4_join_1000`.`join_key` = `t1_cod4_ktemp_1000`.`ktemp_killer`
    WHERE
    `t1_cod4_join_1000`.`join_runde` = '44505' AND
    `t1_cod4_ktemp_1000`.`ktemp_runde` = '44505'
    GROUP BY
    `t1_cod4_join_1000`.`join_nick`

  • #2
    count(...) as anzahl

    order by anzahl desc
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Danke, das klappt schonmal nun aber meine nächste Frage dafür die Tabellen Struktur:

      t1_cod4_join_1000:

      join_id | join_nick | join_key | join_runde


      t1_cod4_ktemp_1000:

      ktemp_id | ktemp_killer | ktemp_opfer | ktemp_killer_runde

      in Tabelle 1 steht jetzt Steve mit dem Key ABCD in der Runde 100

      Jetzt möchte ich wissen wie oft er in der Tabelle ktemp_killer mit der Runde 1000 steht und wie oft als ktemp_opfer. In den Feldern steht jeweils der Key.

      zum Schluss will ich auch noch die Anzahl der Killer durch die Anzahl der Opfer teilen, aber das habe ich noch nicht eingebaut.

      Ich habe es so versucht:

      PHP-Code:
      SELECT
      `t1_cod4_join_1000`.`join_nick`,
      Count(`t1_cod4_ktemp_1000`.`ktemp_killer`),
      Count(`t1_cod4_ktemp_1000`.`ktemp_opfer`)
      FROM
      `t1_cod4_join_1000`
      Inner Join `t1_cod4_ktemp_1000ON
       
      `t1_cod4_join_1000`.`join_key` = `t1_cod4_ktemp_1000`.`ktemp_killer
      OR
       `
      t1_cod4_join_1000`.`join_key` = `t1_cod4_ktemp_1000`.`ktemp_opfer`
      WHERE
      `t1_cod4_join_1000`.`join_runde` =  '44611' AND
      `
      t1_cod4_ktemp_1000`.`ktemp_runde` =  '44611'
      GROUP BY
      `t1_cod4_join_1000`.`join_nick
      Leider gibt er mir da bei killer und opfer die gleiche Zahl aus :-( Hatte überlegt ob es die Möglichkeit gibt im count noch mal eine Where bedingung einzubauen. Z.B:

      Count(`t1_cod4_ktemp_1000`.`ktemp_opfer`) WHERE t1_cod4_ktemp_1000 = `t1_cod4_join_1000`.`join_key`,
      Zuletzt geändert von Laire; 29.01.2008, 19:29.

      Kommentar


      • #4
        Was steht denn in den betreffenden Spalten? 1 und 0 oder was?

        Da hilft ein Count natürlich nicht. Das zählt ALLE Zeilen.

        Da musst du mit SUM arbeiten. GGf mit IF, je nach dem, welche Daten du drin stehen hast.

        Kommentar


        • #5
          in der spalte killer oder opfer steht jeweils der key...

          also keine zahl und ich möchte wissen wie oft der key in killer vor kommt und wie oft in opfer, in den betreffenden zeilen

          Kommentar


          • #6
            Ja, dann mit SUM(if(killer=abcd,1,0))

            Kommentar


            • #7
              Sorry das ich das jetzt nich kapiere, warum sum? ich will doch zählen

              Kommentar


              • #8
                Dann versuch den Code nachzuvollziehen. Ich hab schon zweimal überlegt, ob ich dir einfach den fertigen Code hinpacke oder nur die Stichworte. Jetzt weiß ich wieder, warum es sonst nur Stichworte hagelt.

                Kommentar


                • #9
                  Hast du deinen oberen beitrag edetiert? Stand da vorher nicht was anderes? Mir sind stichworte lieber ;-)

                  Kommentar


                  • #10
                    editiert habe ich afair(emember) nicht.

                    Stichworte SUM() und IF()

                    Kommentar


                    • #11
                      Das if habe ich jetzt in der mysql doku gefunden und verstanden, danke

                      Kommentar

                      Lädt...
                      X