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

Oracle单SELECT语句中计算数据占比的方法咨询

单条SQL语句完成路线统计与占比计算

你可以通过聚合函数结合条件判断,用单条SELECT语句同时获取总路线数、符合条件的路线数以及占比,示例SQL如下:

SELECT
  COUNT(*) AS total_routes,
  SUM(CASE WHEN distance < 100 THEN 1 ELSE 0 END) AS valid_routes,
  ROUND(
    (SUM(CASE WHEN distance < 100 THEN 1 ELSE 0 END) * 100.0) / COUNT(*),
    2
  ) AS percentage
FROM routes;

语句说明:

  • COUNT(*):统计表中所有路线的总数量;
  • SUM(CASE...):通过条件分支,对满足distance < 100的记录计数,符合条件的返回1,否则返回0,求和后得到符合条件的路线数;
  • 百分比计算中,乘以100.0是为了将整数除法转换为浮点数运算,避免精度丢失;ROUND(..., 2)用于保留两位小数,你可以根据需求调整保留的小数位数。

如果你的数据库支持COUNT(IF(...))语法(比如MySQL),还可以使用更简洁的写法:

SELECT
  COUNT(*) AS total_routes,
  COUNT(IF(distance < 100, 1, NULL)) AS valid_routes,
  ROUND(COUNT(IF(distance < 100, 1, NULL)) * 100.0 / COUNT(*), 2) AS percentage
FROM routes;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:20:19