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

SQL分组统计:如何将指定字段多值合并为一组统计?

实现DIF字段分组时合并c、d为一组的SQL方案

可以通过自定义分组规则来实现将c和d合并统计,以下是几种通用的实现方式:

方法1:使用CASE WHEN(通用所有SQL数据库)

这是最通用的写法,几乎所有主流SQL数据库(MySQL、PostgreSQL、SQL Server、Oracle等)都支持:

SELECT
  CASE
    WHEN DIF IN ('c', 'd') THEN 'cd'
    ELSE DIF
  END AS grouped_dif,
  COUNT(*) AS count
FROM tableA
GROUP BY grouped_dif;

逻辑说明:通过CASE语句将DIF字段的'c'、'd'值统一替换为'cd',其他值保持不变,最后按替换后的grouped_dif字段分组统计数量。

方法2:使用IF函数(仅MySQL/MariaDB适用)

如果是MySQL或MariaDB,可以用更简洁的IF函数替代CASE WHEN:

SELECT
  IF(DIF IN ('c', 'd'), 'cd', DIF) AS grouped_dif,
  COUNT(*) AS count
FROM tableA
GROUP BY grouped_dif;

逻辑和方法1一致,只是语法更简洁,适合简单的二分支判断场景。

补充说明

  • 注意表名不要加空格,原问题中的table A应该写成tableA或者用反引号包裹(比如`table A`),避免语法错误。
  • 如果需要保持分组结果的顺序,可以在语句末尾添加ORDER BY grouped_dif;,让结果按a、b、cd的顺序展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:34:56