我正在基於其他兩列的值做一個列的平均值。MySQL AVG錯誤的結果與ELSE 0
表結構是這樣的
| rid | rate | status |....
| 1 | 1500 | 1 |....
| 1 | 1500 | 1 |....
| 1 | 1500 | 1 |....
| 1 | 1500 | 1 |....
| 2 | 1500 | 1 |....
當我做這樣它給了我正確的結果1500
,但它沒有CASE
比賽返回NULL
,我需要AVG
返回0
如果沒有相匹配的行的CASE
條件。
AVG(CASE WHEN `rid` = `status` THEN `rate` END) DIV 1 AS `avg`
我試過這種方式,但它給了我錯誤的結果作爲1200
AVG(CASE WHEN `rid` = `status` THEN `rate` ELSE 0 END) DIV 1 AS `avg`
爲什麼我得到錯誤的結果?
請參閱並提出任何可能的方式來做到這一點。
感謝
請問你是否添加了記錄,你的錯誤答案是? –