Generally no.
This fails in standard SQL:
SELECT *,
ROW_NUMBER() OVER (...) AS rn
FROM employees
WHERE rn = 1;WHERE runs before the window result exists.
Use a subquery or CTE:
WITH ranked AS (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY department
ORDER BY salary DESC
) AS rn
FROM employees
)
SELECT *
FROM ranked
WHERE rn = 1;Interviewers love this pattern (top-N per group with CTE + ROW_NUMBER).