0
select *,
(a/100) as a_calc,
(select sum(a_calc) from foo where c = ? and d = ?) as a_calc_sum
from foo
where c = ? and d = ?
order by a;
這裏的目的是我想回到匹配原來的查詢(不和)的所有行,並已mysql的計算a_calc的總和我不是發出一個單獨的查詢。沒有這個子選擇,看起來我只能得到查詢中的第一行,並附加了正確的總和。減少SQL語句的結果山坳的總和
任何想法如何減少上面的查詢?
你想要的所有匹配行作爲在結果列的總和? 「減少查詢」是什麼意思? – Vatev
這太抽象了,無法獲得體面的答案。請在http://sqlfiddle.com上提供示例模式,並在您的問題中顯示應用於測試模式時查詢的預期結果。 –
通過減少我的意思,我想盡可能簡化SQL查詢,包括可能分解重複的'where'子句。 – stgtscc