0
当我执行以下命令它告诉我从一组MySQL的统计记录
#1247 - 参考 'StockCount' 不支持(参照组功能)
SELECT stockSymbol, count(*) as StockCount
FROM US500
group by stockSymbol
AND StockCount > 100
ORDER BY stockSymbol DESC
打算什么为什么它不工作。
当我执行以下命令它告诉我从一组MySQL的统计记录
#1247 - 参考 'StockCount' 不支持(参照组功能)
SELECT stockSymbol, count(*) as StockCount
FROM US500
group by stockSymbol
AND StockCount > 100
ORDER BY stockSymbol DESC
打算什么为什么它不工作。
SELECT
和任何WHERE
子句在任何聚合GROUP BY
函数之前应用。
如果你尝试这个,你会得到关于未知列StockCount
错误的WHERE
子句中:
SELECT stockSymbol, count(*) as StockCount
FROM US500
WHERE StockCount > 100
GROUP BY stockSymbol
ORDER BY stockSymbol DESC
相反,使用HAVING
发生后SELECT
,WHERE
,并GROUP BY
适用于从汇总结果的条件GROUP BY
:
SELECT stockSymbol, count(*) as StockCount
FROM US500
/* WHERE clause would go here */
GROUP BY stockSymbol
HAVING StockCount > 100
ORDER BY stockSymbol DESC
ORDER BY
最后发生,所以你也可以参考聚合列那里,如果哟你想:
SELECT stockSymbol, count(*) as StockCount
FROM US500
GROUP BY stockSymbol
HAVING StockCount > 100
ORDER BY StockCount DESC
您的查询中的子句的顺序应该给你一些他们处理的顺序的想法。例如。 GROUP BY
子句必须在WHERE
子句和HAVING
必须在GROUP BY
之后。
聚合条件需要通过'having'来完成,而不是在where子句中。 –
用'HAVING'替换''和' – AgRizzo
谢谢你做的伎俩! – XK8ER