Empecé a aprender la base de datos sql solo a partir de 1 semana y tengo una consulta sobre la función agregada. Quiero usar dos marcas adicionales de estudiantes y quiero ordenar sus totales de mínimo a máximo.
Yo he tratado
SELECT student_name,min(sum(marks))
FROM STUDENTS a,STUDENT b
WHERE a.student_name=b.student_name
GROUP BY student_name
Pero recibí un error en la primera línea No es una función de grupo de un solo grupo
por favor dime cuál será el código correcto ...
Respuestas
0 para la respuesta № 1Prueba esto
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 para la respuesta № 2
Parece que no necesitas un join
para esta consulta, a menos que desee filtrar. (Y, si usas un join
luego use la sintaxis de unión explícita). Asumiendo marks
es de la segunda tabla, creo que quieres algo como:
SELECT s.student_name, sum(b.marks)
FROM STUDENT s
GROUP BY s.student_name
ORDER BY sum(b.marks);