2016-08-24 23 views
0

我想選擇一個表列由 把該列的平均值,如果任何值是0認沽平均列,而不是0值的mysql選擇查詢的

我的查詢:

SELECT IF(my_column= 0, AVG(number), number) FROM table; 

問題是這個查詢我只得到1行;當我把一個數字,而不是AVG(數字)像

SELECT IF(my_column= 0, 100, number) FROM table; 

一切都很好。

那麼,我怎樣才能把平均值而不是0,而選擇一列。

謝謝

+1

添加樣本表數據和預期的結果。和表格定義(包括列數據類型)。 – jarlh

回答

1

您可以用選擇的平均子查詢交叉連接,然後使用:

SELECT IF(t.my_column=0, a.avg, t.number) 
FROM table t, (SELECT AVG(number) AS avg FROM table) a