There is 2 tables called
Students
- stuID
- camID FK
Campus
- camID PK
- camName
I am trying to find the campuses with more than 4 students that include the camName, camID, (number of students)
This is what I got so far
SELECT
students.camID, campus.camName, SUM(students.stuID) as [count]
FROM
students
JOIN
campus ON campus.camID = students.camID
WHERE
[count] > 3
GROUP BY
students.camID, campus.camName
ORDER BY
[count]
All this gets me though is a error that 'Invalid comlumn name 'count'.
You can't use a column alias in a
WHERE
clause, because theWHERE
clause is evaluated before the alias is even created. You also can't use an alias in theHAVING
clause.The first SQL products didn't support derived tables, so
HAVING
was invented. But now we do have derived tables, so we no longer needHAVING
and indeed it can cause confusion (note legacy functionality is never removed from the SQL Standard):