获取具有空数据的多列的平均值

时间:2016-09-11 05:03:37

标签: php mysql

我有一个名为得分

的数据库表

所有列都设置为VARCHAR,因为我想使用null data,而不是0

!  id   !  A    !  B   ! avg  !    
-------------------------------
!  01   !  10   !  0   !      !
!  02   !       !  10  !      !
!  03   !   0   !  10  !      !
!  04   !  10   !      !      !

我想从这张表中得到平均值

! avg !    
-------
!  5  !
!  10 !
!  5  !
!  10 !

我需要使用哪些 SQL 命令来实现上述结果

由于

1 个答案:

答案 0 :(得分:0)

SELECT (COALESCE(A, 0) + COALESCE(B, 0)) /
       ((CASE WHEN A IS NULL THEN 0 ELSE 1 END) +
        (CASE WHEN B IS NULL THEN 0 ELSE 1 END)) AS avg
FROM score

注意:

我没有处理除零的情况。