【问题标题】:Sum the result under Group By Condition对 Group By Condition 下的结果求和
【发布时间】:2021-09-04 22:34:17
【问题描述】:

我在 SQL Server 中有如下表。

Process_ID Process_Type
011 P1
012 P1
013 P2
014 P2
015 P3
016 P3

我想同时获取进程类型 P2 和 P3 的进程 ID 计数。我使用了如下查询:

select count(Process_ID) as Process_Count, Process_Type
from Process_Table
where Process_type in ('P2','P3')
group by Process_Type;

结果显示:

Process_Count Process_Type
2 P2
2 P3

但我需要:

Process_Count Process_Type
4 P2_and_P3

谁能帮助我如何将在 SQL in 条件和 group by 子句下使用的结果求和并将其显示在输出中?

提前谢谢你。

【问题讨论】:

标签: sql sql-server sql-server-2008 group-by sum


【解决方案1】:

如果你真的只想要一个记录的结果集,那么删除GROUP BY 子句:

SELECT COUNT(Process_ID) AS Process_Count, 'P2_and_P3' AS Process_Type
FROM yourTable
WHERE Process_Type IN ('P2', 'P3');

如果您可能想要查看所有进程类型组,但将 P2P3 分桶在一起,则使用 CASE 表达式聚合:

SELECT
    CASE WHEN Process_Type IN ('P2', 'P3')
         THEN 'P2_and_P3' ELSE Process_Type END AS Process_Type,
    COUNT(Process_ID) AS Process_Count
FROM yourTable
GROUP BY
    CASE WHEN Process_Type IN ('P2', 'P3') THEN 'P2_and_P3' ELSE Process_Type END;

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多