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

SQL查询需求:返回所有名称并仅统计int=1的记录数

实现返回所有名称并按条件计数的SQL查询

问题回顾

你的原数据表结构及数据:

IDNameint
1test11
2test22
3test30

原查询语句SELECT Count(ID) FROM table where int = 1 group by(ID);只能返回符合int=1的记录计数,现在需要返回所有名称,仅对int=1的记录计1,其余计0。

解决方案

可以使用条件聚合函数来实现需求,具体SQL语句如下:

SELECT 
  SUM(CASE WHEN `int` = 1 THEN 1 ELSE 0 END) AS count,
  Name
FROM your_table -- 替换成你的实际表名
GROUP BY ID, Name -- 若Name是唯一值,仅GROUP BY Name即可
ORDER BY ID;

逻辑解释

  1. 移除WHERE子句:这样不会过滤掉任何记录,能保留所有名称
  2. CASE条件判断:对每条记录检查int字段是否等于1,符合条件返回1,否则返回0
  3. SUM聚合:对每个分组(按ID/Name)的CASE结果求和,得到该名称对应的符合条件的计数
  4. ORDER BY ID:保证结果顺序和原表一致,匹配你的期望输出

执行结果

运行上述语句后,会得到你想要的结果:

countName
1test1
0test2
0test3

注意:int是SQL的保留关键字,建议用反引号(MySQL)或方括号(SQL Server)包裹,避免语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:11:39