suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So verwenden Sie die Summenfunktion zum Filtern von Fensterfunktionen in MYSQL

<p>Wie kann ich diese Abfrage schreiben, um nur Ergebnisse mit einer Summe größer als 50 herauszufiltern? Ich kann es nicht mit „haveing“ oder „sum“ zum Laufen bringen, aber ich bin mir sicher, dass es eine Möglichkeit gibt. </p> <pre class="brush:php;toolbar:false;">Name auswählen, Summe(Punktzahl) Von Submissions Inner Join Hacker auf Submissions.hacker_id = hacker.hacker_id Gruppe nach Einreichungen.hacker_id Sortieren nach Summe(Punktzahl) absteigend mit Summe(Punktzahl) > 50</pre> <p>Hier ist ein Beispiel mit einer Tabelle (die Tabelle hat nichts Besonderes, diese Abfrage wird ohne die letzte Zeile ausgeführt, gibt aber die Punktzahl und den Namen aller zurück): http://sqlfiddle.com/# !9/7a660d/ 16</p>
P粉186904731P粉186904731471 Tage vor595

Antworte allen(2)Ich werde antworten

  • P粉877114798

    P粉8771147982023-08-31 15:51:51

    Order by should be in last

    select name, sum(score) 
    from submissions 
    inner join hacker on submissions.hacker_id = hacker.hacker_id
    group by submissions.hacker_id
    having sum(score) > 50 
    order by sum(score) desc

    按照应该在最后进行排序

    选择 名称, 总分
    从 提交
    内连接 黑客 on 提交.黑客编号 = 黑客.黑客编号
    分组 按 提交.黑客编号
    筛选 总分 > 50 
    排序 按 总分 降序

    Antwort
    0
  • P粉909476457

    P粉9094764572023-08-31 00:57:15

    您的order by应该在您的having之后。即:

    select 
        name, 
        sum(score) 
    from 
        submissions 
    inner join 
        hacker on submissions.hacker_id = hacker.hacker_id
    group by 
        submissions.hacker_id
    having 
        sum(score) > 50 
    order by 
        sum(score) desc
    

    Antwort
    0
  • StornierenAntwort