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

如何在Oracle数据库中按自定义类别统计分组SQL结果?

Oracle SQL按自定义数值类别分组统计

针对你的需求,直接用CASE表达式对数值进行分类,再配合GROUP BY就能实现按0、>0、<0三个类别统计数量,避免按原始小数分组产生大量类别。

核心SQL语句

SELECT
  CASE
    WHEN VALUE = 0 THEN '0'
    WHEN VALUE > 0 THEN '>0'
    ELSE '<0'
  END AS Value,
  COUNT(*) AS TotalRepetitions
FROM INSPECTIONS
-- 可添加批次号过滤条件,例如 WHERE BATCH_NO = '指定批次号'
GROUP BY
  CASE
    WHEN VALUE = 0 THEN '0'
    WHEN VALUE > 0 THEN '>0'
    ELSE '<0'
  END
ORDER BY
  CASE Value
    WHEN '0' THEN 1
    WHEN '>0' THEN 2
    ELSE 3
  END;

关键说明

  1. 类别映射:通过CASE表达式将每个数值映射为对应的类别字符串,以此作为分组依据,替代原始的高精度小数。
  2. 精度兼容处理:如果存在因存储精度导致的近似0值(如0.000000001或-0.000000001),可调整判断逻辑为ROUND(VALUE, 8) = 0,匹配保留8位小数后为0的数值。
  3. 结果排序:最后的ORDER BY子句确保结果按0、>0、<0的顺序输出,与你期望的格式一致。

示例输出结果

ValueTotalRepetitions
012567
>056795
<023456

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:07:06