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

在MySQL中如何分组合并两种状态的统计计数结果

解决方案

要实现按Name分组,统计每个名称下状态为On或Off的对象总数,你可以用以下几种SQL写法:

方法1:结合SUM与CASE表达式

这种方式会保留所有存在的Name,如果某个Name下没有符合条件的记录,统计结果会显示0。

SELECT 
    Name,
    SUM(CASE WHEN Status IN ('On', 'Off') THEN 1 ELSE 0 END) AS `状态为On或Off的对象数量`
FROM object
GROUP BY Name;

方法2:利用COUNT的非NULL统计特性

COUNT只会统计非NULL的值,所以当状态符合条件时返回1,否则返回NULL,最终得到符合条件的记录数:

SELECT 
    Name,
    COUNT(CASE WHEN Status IN ('On', 'Off') THEN 1 END) AS `状态为On或Off的对象数量`
FROM object
GROUP BY Name;

方法3:先过滤再分组

如果不需要统计那些没有On/Off状态的Name,可以先通过WHERE过滤符合条件的记录,再分组计数:

SELECT 
    Name,
    COUNT(*) AS `状态为On或Off的对象数量`
FROM object
WHERE Status IN ('On', 'Off')
GROUP BY Name;

内容的提问来源于stack exchange,提问作者A. Floyd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:50:01