que tienen dos tipos de tabla:SQL - Vista VS donde
1. Lecturers (LectID, Fname, Lname, degree).
2. Lecturers_Specialization (LectID, Expertise).
Quiero encontrar el profesor con los más especialización. Cuando intento esto, no está funcionando:
SELECT
L.LectID,
Fname,
Lname
FROM Lecturers L,
Lecturers_Specialization S
WHERE L.LectID = S.LectID
AND COUNT(S.Expertise) >= ALL (SELECT
COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID);
Pero cuando intento esto, funciona:
SELECT
L.LectID,
Fname,
Lname
FROM Lecturers L,
Lecturers_Specialization S
WHERE L.LectID = S.LectID
GROUP BY L.LectID,
Fname,
Lname
HAVING COUNT(S.Expertise) >= ALL (SELECT
COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID);
Cuál es la razón? Gracias.
Puede aclarar qué versión de SQL está utilizando (MySQL, MS SQL, PostgreSQL, Oracle, etc.). Además, cuando dices "no funciona", ¿te refieres a que los resultados no son los esperados, o que hay un error de compilación/análisis? – jklemmack
¿Por qué usa ALL en lugar de MAX ?. ¿Hay alguna ventaja? – skan