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

Oracle统计跳过特定状态的订单数(适配OBIEE Answers)

解决方案

要统计从未出现指定状态的独立订单数量,需利用窗口函数结合条件判断,确保计数的是独立订单而非单条状态记录,适配OBIEE的SQL写法如下:

SELECT
  COUNT(DISTINCT CASE WHEN SUM(CASE WHEN STATUS LIKE '%Approved%' THEN 1 ELSE 0 END) OVER (PARTITION BY ORDER_ID) = 0 THEN ORDER_ID END) AS NOT_APPROVED,
  COUNT(DISTINCT CASE WHEN SUM(CASE WHEN STATUS LIKE '%Dispatched%' THEN 1 ELSE 0 END) OVER (PARTITION BY ORDER_ID) = 0 THEN ORDER_ID END) AS NOT_DISPATCHED
FROM Orders
FETCH FIRST 1 ROW ONLY

关键逻辑说明:

  • SUM(...) OVER (PARTITION BY ORDER_ID):按订单ID分组,统计每个订单是否出现过目标状态(出现则求和结果≥1,未出现则为0)
  • CASE WHEN ... THEN ORDER_ID END:仅当订单从未出现目标状态时,返回该订单ID
  • COUNT(DISTINCT ...):对符合条件的订单ID去重计数,得到独立订单总数
  • FETCH FIRST 1 ROW ONLY:确保最终仅返回一行汇总结果(所有行的计算结果一致,取任意一行即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:13:00