MySQL-带有命名算术运算符的where子句

MySQL-带有命名算术运算符的where子句,mysql,where,Mysql,Where,我有一个MySQL表,其中包含一段时间内仓库的库存。我想看看每个仓库的最小值和最大值的范围。这现在可以正常工作了: SELECT WAREHOUSE_ID, (max(INVENTORY) - Min(INVENTORY)) as 'Diff' FROM ShopData group by WAREHOUSE_ID 结果: # WAREHOUSE_ID, Diff 42131733712, 0 42132001360, 0 310572515344, 4 当我尝试在创建的“diff”列上使用

我有一个MySQL表,其中包含一段时间内仓库的库存。我想看看每个仓库的最小值和最大值的范围。这现在可以正常工作了:

SELECT WAREHOUSE_ID, (max(INVENTORY) - Min(INVENTORY)) as 'Diff' FROM ShopData
group by WAREHOUSE_ID
结果:

# WAREHOUSE_ID, Diff
42131733712, 0
42132001360, 0
310572515344, 4
当我尝试在创建的“diff”列上使用“where”子句时,结果保持不变

SELECT WAREHOUSE_ID, (max(INVENTORY) - Min(INVENTORY)) as 'Diff' FROM d0287d28.ShopData
WHERE 'Diff' = 0 
group by WAREHOUSE_ID
它仍然显示上述结果。但它应该只显示前两行


谢谢你的支持

尝试使用
HAVING
子句:

SELECT
    WAREHOUSE_ID,
    MAX(INVENTORY) - MIN(INVENTORY) AS Diff
FROM ShopData
GROUP BY WAREHOUSE_ID
HAVING Diff = 0;

WHERE
子句中引用您的聚合计算是没有意义的,因为分组过程在查询的那个点上还没有发生。

谢谢!这很有效。我已经在想,为什么我不能把“where”放在groupby下面。它正在工作!