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

SQL查询如何新增Approved Count列统计已审批订单数量

SQL实现新增已审批订单计数列的最优方案

直接使用ANSI SQL标准的CASE条件表达式即可实现需求,不需要复杂的关联查询、子查询或者窗口函数,是当前场景下性能最高、兼容性最好的方案。

核心实现代码

假设存储订单统计数据的原始表名为order_stats,查询语句如下:

SELECT
  `User name`,
  Status,
  Count,
  CASE WHEN Status = 'Approved' THEN Count ELSE NULL END AS `Approved Count`
FROM order_stats;

执行逻辑说明

  • 查询时逐行判断当前记录的Status字段值
  • 当行状态为Approved时,新增的Approved Count列直接取本行已有的Count字段值
  • 当行状态为Rejected时,该列返回NULL,所有SQL客户端、数据导出工具对NULL值的默认展示效果即为空单元格,完全匹配“留空”的需求

方案优势

  • 性能最优:仅需一次全表扫描,行级条件判断的计算开销可以忽略,执行效率远高于子查询、多表关联、窗口函数类的实现方案
  • 兼容性拉满:属于ANSI SQL标准语法,支持MySQL、PostgreSQL、SQL Server、Oracle等所有主流数据库,不存在方言、版本兼容问题
  • 可维护性强:字段赋值逻辑直接写在SELECT子句中,无隐含逻辑,后续如果需要调整规则(比如新增其他状态的赋值逻辑),直接修改CASE分支即可

补充说明:如果业务中存在除Approved、Rejected之外的其他订单状态,当前写法会默认将所有非Approved状态的对应列置空;如果需要严格限定仅Rejected状态留空、其他状态单独处理,只需要调整CASE语句的判断条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:33:42