问题描述
我在 sql 中有一个这种样式的表:
id | 名字 | 姓氏 | 年龄 |
---|---|---|---|
1 | 约翰 | 威廉姆斯 | 25 |
2 | 安妮 | 23 |
我想统计每行填充的列数,如下图。
id | 名字 | 姓氏 | 年龄 | PopulatedColumns |
---|---|---|---|---|
1 | 约翰 | 威廉姆斯 | 25 | 4 |
2 | 安妮 | 23 | 3 |
有谁知道如何制作一个在 sql 中进行计数的脚本?但是我不想指定列的名称,因为我有一个非常大的表,将所有列的名称都放在一起是不切实际的。有没有办法做到这一点?不加名字?
解决方法
在 MySQL 中,你可以使用算术:
select t.*,( (id is not null) + (firstname is not null) + (lastname is not null) + (age is not null)
) as populated_columns
from t;