7
是否有可能獲得列的平均值,以及具有條件的同一列的平均值?或者只是將這兩個查詢合併爲一個。有條件的mysql平均值
SELECT AVG(field) from table
SELECT AVG (field) from table where col = some_val
如果沒有簡單的方法來使用本機mysql函數來組合它們,存儲的函數是否能夠處理它或用戶定義的函數?
是否有可能獲得列的平均值,以及具有條件的同一列的平均值?或者只是將這兩個查詢合併爲一個。有條件的mysql平均值
SELECT AVG(field) from table
SELECT AVG (field) from table where col = some_val
如果沒有簡單的方法來使用本機mysql函數來組合它們,存儲的函數是否能夠處理它或用戶定義的函數?
考慮的事實null
值不包含在聚合函數的優勢,我們可以使用一個CASE
語句來控制平均,如下列:
select avg(amt) as average,
avg(case when col=some_val then amt else null end) as conditionalAverage
from myTable;
還有另外一種方法,不使用的情況下
select
avg(amt) as average,
avg(if(col=some_val,amt,null)) as conditionalAverage
from myTable