La diferencia entre la cláusula have y donde en SQL es que la cláusula donde no puede Antiguo Testamento usarse con agregados, pero la cláusula have sí.
El dónde La cláusula funciona con los datos de la fila, no con los datos agregados. Consideremos la siguiente tabla 'Marcas'.
Puntuación del curso del estudiante
un c1 40
un c2 50
b c3 60
rec1 70
mi c2 80
Considere la consulta
SELECT>Student, Score FROM Marks WHERE Score>=40> |
Esto seleccionaría datos fila por fila.
El teniendo La cláusula funciona con datos agregados.
Por ejemplo, resultado de la siguiente consulta
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Total de estudiantes
un 90
b 60
re 70
y 80
Cuando aplicamos la consulta anterior, obtenemos
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Total de estudiantes
un 90
y 80
Nota: No es una regla predefinida, pero en un buen número de consultas SQL usamos WHERE antes de GROUP BY y HAVING después de GROUP BY. La cláusula Where actúa como prefiltro donde como Tener como filtro posterior.