SQL,统计问题,统计某字段总数和符合某条件的数量

有一个表有两个字段:
名称 类型
其中 类型可能是A,B
现在要统计成
名称,总数量,类型为A的数量 怎么统计?
比如:
姓名 类型
S A
P B
S B
P A
S B
S B
统计结果为:
名称,总数量,类型为A的数
S 4 1
P 2 1

输入代码

select 名称
,count(*) as 总数量
,count(case when 类型='A' then  类型 else null end) as 类型为A的数
from 表名
group by 名称。

就可以统计SQL中某字段总数和符合某条件的数量。

    结构化查询语言(英文简称:SQL)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

    结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的 关系数据库操作语言,并且它的影响已经超出 数据库领域,得到其他领域的重视和采用,如 人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。

    它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-24
你可以试下:select 名称,count(*) as 总数量,sum(case when 类型='A' then 1 else 0 end) as 类型为A的数量 from 表
第2个回答  推荐于2018-02-22
select 名称
,count(*) as 总数量
,count(case when 类型='A' then 类型 else null end) as 类型为A的数
from 表名
group by 名称本回答被网友采纳
第3个回答  2013-07-24
select 名称,count(*) from 表 where 类型=a group by 名称
第4个回答  2013-07-24
select 名称,count(*) 总数量 into newTable from 表名 group by 名称
select count(*) 类型为A的数 into newTable2 from 表名 where 类型='A' group by 名称select distinct(名称),总数量,类型为A的数 from newTable,newTable2 一个查询好像很难实现 所以用了两个本回答被网友采纳
相似回答