使用CASE语句或IF函数将表达式转换为0或1的布尔值表示,再在AVG中使用SUM函数和COUNT函数进行计算。
示例代码:
SELECT SUM(CASE WHEN condition THEN expression ELSE 0 END) / COUNT(CASE WHEN condition THEN 1 ELSE 0 END) FROM table;
或者:
SELECT SUM(IF(condition, expression, 0)) / SUM(IF(condition, 1, 0)) FROM table;
其中,condition表示要过滤的条件,expression表示要计算的表达式。以上两种解决方法都将表达式转换为0或1的布尔值。第一种方法通过CASE语句实现,第二种方法则使用了IF函数。在AVG中使用SUM函数和COUNT函数计算布尔值为1的数量和总数,再相除即可得到AVG的结果。