获取列值不为 NULL 的每列计数

Hac*_*ker 3 mysql count

我有一个表和表中的 5 列。我想要列值不为空的每一列的行数。

column1 column2 column3 column4 column5
1        2        2       2        2
2        2        2       NULL     2     
3        NULL     2       2        NULL
NULL     NULL     2       2        NULL
NULL     NULL     2       2        NULL
Run Code Online (Sandbox Code Playgroud)

我应该得到像 3,2,5,4,2 这样的输出

小智 6

提供的解决方案对我不起作用。我不得不修改代码如下:

SELECT 
COUNT(NULLIF(Column1,'')),
COUNT(NULLIF(Column2,'')),
COUNT(NULLIF(Column3,'')),
COUNT(NULLIF(Column4,'')),
COUNT(NULLIF(Column5,''))
FROM Table1
Run Code Online (Sandbox Code Playgroud)


Adr*_*der 5

怎么样的东西

SELECT 
COUNT(Column1),
COUNT(Column2),
COUNT(Column3),
COUNT(Column4),
COUNT(Column5)
FROM Table1
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示

来自COUNT(expr)

返回由 SELECT 语句检索的行中 expr 的非 NULL 值的计数。

COUNT(*) 有点不同,它返回检索到的行数的计数,无论它们是否包含 NULL 值。