我想根據max + sum條件選擇一些條目。select sum where sum
mytable
----------
id | col1 | col2
我要選擇具有COL1的總和所有條目& COL2大於或等於之和減去X的最大值(不要問我爲什麼:))
到目前爲止,我設法與和OK(以下簡稱別名爲 「總」):
SELECT id,SUM(col1 + col2) AS total FROM mytable GROUP BY id;
我也設法得到的總和確定的MAX(用ORDER BY/LIMIT解決方法雖然):
SELECT id,SUM(col + col) as total FROM mytable GROUP BY id ORDER BY total DESC LIMIT 1;
但每次我嘗試重新使用我的別名作爲條件(例如, WHERE總> = ...)我得到一個「未知列」錯誤
任何會如果使用GROUP BY,你需要使用having子句將不勝感激
對於其他有類似問題的人,在選擇表達式之前先評估WHERE條款,以確定哪些行甚至應該打擾。事實上'HAVING'就像'WHERE'一樣,儘管速度可能會變慢,但如果你選擇的是你正在評估的東西,那麼它很有用。在這種情況下,您只需使用'HAVING total> = x'。 – Walf 2012-09-14 07:22:35