如何按行统计?需统计每位母亲的子女数量(基于DOB列非空值)
统计每行非NULL的子女出生日期(DOB)数量的方法
先将原表格转换为Markdown格式:
| Primary Key | Child1DOB | Child2DOB | Child3DOB | Child4DOB |
|---|---|---|---|---|
| mother1 | 12.09.00 | 05.04.97 | NULL | NULL |
| mother2 | 09.06.01 | 05.09.98 | 06.04.07 | NULL |
| mother3 | 12.06.02 | 03.14.99 | 06.04.08 | NULL |
| mother4 | 09.07.03 | 05.02.00 | 06.04.09 | NULL |
| mother5 | 10.06.04 | 05.11.12 | 08.05.97 | 01.03.95 |
以下是不同工具下的统计方案:
SQL 场景
如果数据存储在数据库中,可通过条件判断累加非NULL值的数量:
SELECT `Primary Key`, ( CASE WHEN Child1DOB IS NOT NULL THEN 1 ELSE 0 END + CASE WHEN Child2DOB IS NOT NULL THEN 1 ELSE 0 END + CASE WHEN Child3DOB IS NOT NULL THEN 1 ELSE 0 END + CASE WHEN Child4DOB IS NOT NULL THEN 1 ELSE 0 END ) AS ChildCount FROM your_table_name;
针对MySQL/MariaDB,还可以用更简洁的写法:
SELECT `Primary Key`, SUM( Child1DOB IS NOT NULL + Child2DOB IS NOT NULL + Child3DOB IS NOT NULL + Child4DOB IS NOT NULL ) AS ChildCount FROM your_table_name GROUP BY `Primary Key`;
Excel/Google Sheets 场景
假设数据从A1单元格开始,在F2单元格输入公式后下拉填充:
=COUNTA(B2:E2)
COUNTA函数直接统计区域内非空单元格数量。如果要区分文本型的"NULL",用:
=SUMPRODUCT(--(B2:E2<>"NULL"))
Python Pandas 场景
用Pandas处理数据时,可按行统计非"NULL"值的数量:
import pandas as pd # 假设数据已加载为DataFrame df df['ChildCount'] = df[['Child1DOB', 'Child2DOB', 'Child3DOB', 'Child4DOB']].ne('NULL').sum(axis=1) # 输出结果 print(df[['Primary Key', 'ChildCount']])
内容的提问来源于stack exchange,提问作者Killian Gavin
相关产品推荐
相关产品推荐

