SQL AVG的值不为null

时间:2018-01-13 13:06:22

标签: sql null average

我有一个表颜色:

white NULL
white 5
red 3
red 7
blue 6
blue 4

我想要一个avg函数来平均颜色。 AVG功能忽略了'白色NULL'因为它为null。我希望它完全忽略白色。我希望它只显示

red  5
blue 5

无法弄清楚如何忽略'类别'一个空值的值

1 个答案:

答案 0 :(得分:1)

使用HAVING子句过滤掉不需要的颜色:

SELECT
    color,
    AVG(value) AS avg_value
FROM yourTable
GROUP BY color
HAVING SUM(CASE WHEN value IS NULL THEN 1 ELSE 0 END) = 0