SQL查询在ALIAS列上使用WHERE

Spi*_*idy 2 sql-server-2008

这应该很简单,但我收到"无效的列名称"错误.

SELECT Transaction, COUNT(ItemId) AS ItemCount
FROM TransactionTable
WHERE ItemCount > 5
GROUP BY Transaction
ORDER BY ItemCount DESC
Run Code Online (Sandbox Code Playgroud)

这个语句在没有WHERE子句的情况下工作,这似乎是我的双重标准,因为ORDER BY正在使用列别名.

SQL*_*ace 6

使用HAVING并再次指定计数

SELECT Transaction, COUNT(ItemId) AS ItemCount
FROM TransactionTable
GROUP BY Transaction
HAVING COUNT(ItemId) > 5
ORDER BY ItemCount DESC
Run Code Online (Sandbox Code Playgroud)

原因ORDER BY是使用别名是因为SQL查询按此顺序处理

FROM(包括连接)
ON
OUTER
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
TOP