Oracle中avg函数忽略空值和0
Oracle中avg函数忽略空值和0
Oracle中的AVG函数会自动忽略NULL值和0值。如果你想要在计算平均值时排除这些值,你可以使用NVL和CASE语句结合AVG函数来实现。
以下是一个例子,假设我们有一个名为my_table的表,其中包含一个名为value_column的列,我们想要计算该列的平均值但忽略其中的NULL值和0值:
SELECT AVG(CASE WHEN NVL(value_column, 0) <> 0
THEN value_column END) AS average_value
FROM my_table;
在这个查询中,NVL函数将NULL值替换为0,然后CASE语句会排除掉所有的0值。接着AVG函数只会对CASE语句中筛选出的非零、非NULL值进行平均值计算。