You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL中如何计算各类型0值占比并筛选占比超10%的结果

问题描述

现有如下结构的数据表:

TypeNumber
a1
a0
a1
a1
b0
b1
c1
c1

需要完成两个操作:

  • 计算每种Type中数值为0的记录占比
  • 筛选出占比超过10%的结果

预期输出结果如下:

TypePercentage of 0
a25
b50
解决方案(SQL实现)
SELECT 
    Type,
    ROUND(COUNT(CASE WHEN Number = 0 THEN 1 END) * 100.0 / COUNT(*), 0) AS `Percentage of 0`
FROM 
    your_table_name
GROUP BY 
    Type
HAVING 
    ROUND(COUNT(CASE WHEN Number = 0 THEN 1 END) * 100.0 / COUNT(*), 0) > 10;

代码说明

  • COUNT(CASE WHEN Number = 0 THEN 1 END):统计每个Type分组下数值为0的记录数
  • COUNT(*):统计每个Type分组的总记录数
  • 两者相乘以100后取整,得到0值的占比百分比
  • GROUP BY Type:按Type字段分组计算
  • HAVING子句:筛选出占比超过10%的分组结果

内容的提问来源于stack exchange,提问作者slade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:17:16