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

Oracle Apex饼图百分比显示异常及SQL计数查询优化问询

解决方案

1. 修正SQL查询语句

你的问题核心是SQL未按Reason分组统计,导致Apex无法获取每个拒单原因的独立数据。正确的查询需要分组计算每个原因的数量,也可以提前算出百分比:

SELECT
  Reason AS label,
  COUNT(*) AS count_value,
  ROUND((COUNT(*) / SUM(COUNT(*)) OVER ()) * 100, 2) AS pct
FROM DEALS_RETURNED
WHERE Reason IS NOT NULL  -- 过滤空原因,避免无效分组
GROUP BY Reason
ORDER BY count_value DESC;
  • label:作为饼图的类别名称(对应每个拒单原因)
  • count_value:每个原因的交易数量
  • pct:提前计算好的百分比(保留两位小数)

如果存在Reason大小写不一致的情况(比如"Invalid"和"invalid"),可以用UPPER(Reason)统一分组:

SELECT
  UPPER(Reason) AS label,
  COUNT(*) AS count_value,
  ROUND((COUNT(*) / SUM(COUNT(*)) OVER ()) * 100, 2) AS pct
FROM DEALS_RETURNED
WHERE Reason IS NOT NULL
GROUP BY UPPER(Reason)
ORDER BY count_value DESC;

2. 配置Apex饼图属性

  • 数据来源:在饼图的「数据」选项卡中,将label列映射为类别,count_value或pct映射为值:
    • 若用count_value(原始数量),后续在格式设置中转换为百分比显示
    • 若直接用pct,可跳过格式转换,直接显示百分比
  • 工具提示设置:在「系列」选项卡的「工具提示」中,设置内容为{label}: {pct}%(如果用了pct列),或配置为显示百分比格式
  • 显示格式调整:如果用count_value作为值,在「系列」的「格式」中,将「值格式」设为百分比,Apex会自动基于总数计算占比并显示;若格式缩放选项干扰,直接使用提前计算的pct列即可规避单位问题

3. 排查异常显示问题

如果饼图区块仍显示均等,检查以下几点:

  • 执行SQL查询,确认返回结果有多个不同的Reason分组行
  • 确认Reason列没有大量重复的空值或相同值
  • 饼图的「类别」列是否正确绑定到label字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:40:42