MySQL - where子句,带有一个名为Arithmetic Operator的子句

时间:2018-02-05 10:56:06

标签: 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"的条款列,结果保持不变。

SELECT WAREHOUSE_ID, (max(INVENTORY) - Min(INVENTORY)) as 'Diff' FROM d0287d28.ShopData
WHERE 'Diff' = 0 
group by WAREHOUSE_ID

它仍然显示上述结果。但它应该只显示前两行。

感谢您的支持!

1 个答案:

答案 0 :(得分:2)

尝试使用HAVING子句:

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

WHERE子句中引用您的聚合计算是没有意义的,因为在查询中此时尚未发生分组过程。