如何使用SQL计算数据表指定列中None值的占比百分比
实现思路
你要统计的None对应SQL标准中的NULL值,核心计算逻辑为:NULL值行数 / 表总行数 × 100,即可得到NULL值占比百分比。
通用SQL实现(兼容MySQL、PostgreSQL、SQL Server等绝大多数数据库)
把代码里的your_table替换为你实际的表名即可:
SELECT (COUNT(CASE WHEN value IS NULL THEN 1 END) * 100.0 / COUNT(*)) AS null_value_percentage FROM your_table;
代码说明
COUNT(CASE WHEN value IS NULL THEN 1 END):仅统计value列为NULL的行数量,你给出的示例中该值为2COUNT(*):统计表的总行数,你给出的示例中该值为4- 乘以
100.0是为了避免数据库整数除法导致结果精度丢失,最终示例数据计算结果为50 - 如果需要固定保留2位小数,可以外层套
ROUND函数,写法如下:
SELECT ROUND(COUNT(CASE WHEN value IS NULL THEN 1 END) * 100.0 / COUNT(*), 2) AS null_value_percentage FROM your_table;
注意事项
SQL中判断空值必须使用IS NULL,不能写value = NULL,因为NULL与任何值的等值判断结果都为未知,不会被统计命中。
内容的提问来源于stack exchange,提问作者user9440895
相关产品推荐
相关产品推荐

