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

PostgreSQL统计两类记录:关联批次与未关联批次的物品数量

解决方案:统计关联/未关联批次的物品数量

直接用条件聚合函数就能实现一行输出两类物品的统计结果,不需要用GROUP BY,具体SQL语句如下:

标准SQL写法(适配大多数数据库)

SELECT
  COUNT(CASE WHEN batch_id IS NOT NULL THEN 1 END) AS batched,
  COUNT(CASE WHEN batch_id IS NULL THEN 1 END) AS unbatched
FROM items;

MySQL简化写法

SELECT
  COUNT(IF(batch_id IS NOT NULL, 1, NULL)) AS batched,
  COUNT(IF(batch_id IS NULL, 1, NULL)) AS unbatched
FROM items;

原理说明

  • COUNT()函数只会统计非NULL值,所以当条件满足时返回1(会被计数),不满足时返回NULL(不会被计数)
  • 这种写法直接在SELECT里完成两类数据的统计,结果会以单行两列的形式返回,完全匹配你想要的输出格式
  • 之所以不需要GROUP BY,是因为GROUP BY会将不同分组拆分为多行记录,不符合你要在同一行展示两个统计值的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:45:41