我有一个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
它仍然显示上述结果。但它应该只显示前两行。
感谢您的支持!
答案 0 :(得分:2)
尝试使用HAVING
子句:
SELECT
WAREHOUSE_ID,
MAX(INVENTORY) - MIN(INVENTORY) AS Diff
FROM ShopData
GROUP BY WAREHOUSE_ID
HAVING Diff = 0;
在WHERE
子句中引用您的聚合计算是没有意义的,因为在查询中此时尚未发生分组过程。