So verwenden Sie die Summenfunktion zum Filtern von Fensterfunktionen in MYSQL
P粉186904731
P粉186904731 2023-08-30 22:03:52
0
2
586
<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粉186904731
P粉186904731

Antworte allen(2)
P粉877114798

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 
排序 按 总分 降序
P粉909476457

您的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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage