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

Postgres按列GROUP BY时如何将特定值归类为'other'类别

Postgres 合并特定分组的实现方法

你可以通过 CASE 条件表达式先对 type 字段做值映射,将需要合并的 small、medium、large 统一替换为 other 后,再基于映射后的字段做分组聚合,示例SQL如下:

SELECT
  SUM(price) AS sum,
  CASE
    WHEN type IN ('small', 'medium', 'large') THEN 'other'
    ELSE type
  END AS type
FROM sales
GROUP BY
  CASE
    WHEN type IN ('small', 'medium', 'large') THEN 'other'
    ELSE type
  END;

Postgres 9.1及以上版本支持直接按SELECT列表中的字段别名分组,因此可以简化为如下写法,执行效果完全一致:

SELECT
  SUM(price) AS sum,
  CASE WHEN type IN ('small', 'medium', 'large') THEN 'other' ELSE type END AS type
FROM sales
GROUP BY type;

如果担心别名和原表type字段重名产生歧义,也可以将分组后的字段重命名为其他名称:

SELECT
  SUM(price) AS sum,
  CASE WHEN type IN ('small', 'medium', 'large') THEN 'other' ELSE type END AS group_type
FROM sales
GROUP BY group_type;

执行上述SQL后即可得到你需要的统计结果:

sumtype
2basic
2premium
10other

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:57:03