簡體   English   中英

MySQL-帶命名算術運算符的where子句

[英]MySQL - where clause with a named Arithmetic Operator

我確實有一個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子句中引用聚合計算是沒有意義的,因為此時查詢中的分組過程尚未發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM