Ich habe angefangen, SQL-Datenbank erst seit einer Woche zu lernen und habe eine Frage zur Aggregatfunktion. Ich möchte zwei Markierungen von Schülern hinzufügen und deren Gesamtsummen nach Minimum bis Maximum sortieren.
Ich habe versucht
SELECT student_name,min(sum(marks))
FROM STUDENTS a,STUDENT b
WHERE a.student_name=b.student_name
GROUP BY student_name
Aber ich habe Fehler in der ersten Zeile bekommen Keine Gruppenfunktion für eine einzelne Gruppe
Bitte sag mir, was der richtige Code sein wird.
Antworten:
0 für die Antwort № 1Versuche dies
Select Student_name, min(marks)
from (
SELECT student_name,sum(marks) marks
FROM STUDENTS a,STUDENT b
WHERE a.student_name=b.student_name
GROUP BY student_name)
GROUP BY student_name
0 für die Antwort № 2
Sie scheinen nicht zu brauchen join
für diese Abfrage, es sei denn, Sie möchten filtern. (Und wenn Sie a verwenden join
Verwenden Sie dann die explizite Join-Syntax. Vorausgesetzt marks
ist aus dem zweiten Tisch, ich denke, Sie möchten etwas wie:
SELECT s.student_name, sum(b.marks)
FROM STUDENT s
GROUP BY s.student_name
ORDER BY sum(b.marks);