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

如何编写MySQL语句获取唯一cab和name并统计value=0与>0的数量?

问题描述

现有一张表,结构及示例数据如下:

cabnamevalue
1PHP1
1PHP2
1PHP0
2LHL0
3GHG3
3GHG2

需要按cab和name分组,统计每组中value=0的数量和value>0的数量,期望结果如下:

cabnamevalue=0value>0
1PHP12
2LHL10
3GHG02
解决方案

使用条件聚合即可实现需求,通过SUM()结合CASE语句分别统计符合条件的记录数:

SELECT
    cab,
    name,
    SUM(CASE WHEN value = 0 THEN 1 ELSE 0 END) AS `value=0`,
    SUM(CASE WHEN value > 0 THEN 1 ELSE 0 END) AS `value>0`
FROM
    your_table_name
GROUP BY
    cab, name;

代码说明

  • GROUP BY cab, name:按cab和name的唯一组合分组
  • SUM(CASE WHEN value = 0 THEN 1 ELSE 0 END):遍历每组数据,遇到value=0则计数1,否则计数0,求和后得到该组value=0的总数量
  • SUM(CASE WHEN value > 0 THEN 1 ELSE 0 END):同理,统计每组value>0的总数量

注意:将语句中的your_table_name替换为你实际使用的表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:43:10