如何对MS-SQL中同一列的不同值使用计数函数?
对于DB如何对MS-SQL中同一列的不同值使用计数函数?,sql,sql-server,database,sql-server-2008,sql-server-2005,Sql,Sql Server,Database,Sql Server 2008,Sql Server 2005,对于DBStudentInfo和表Student,如下所示: CREATE TABLE Student ( ID INT PRIMARY KEY IDENTITY(1,1), Name nvarchar(255) ) 和插入值: Insert Into Student Values ('Ashok')` 执行3次,以及 Insert Into Student Values ('Achyut') 执行2次,总共有5行数据插入到表中 我想显示一个计算结果的结果,其名称为“
StudentInfo
和表Student
,如下所示:
CREATE TABLE Student
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name nvarchar(255)
)
和插入值:
Insert Into Student Values ('Ashok')`
执行3次,以及
Insert Into Student Values ('Achyut')
执行2次,总共有5行数据插入到表中
我想显示一个计算结果的结果,其名称为“Ashok”和“Achyut”
通常,对于我使用的列中的单个值计数:
SELECT Count(Name) AS NoOfStudentHavingNameAshok
FROM Student
WHERE Name = 'Ashok'
但是如何显示
NoOfStudentHavingNameAshok
和NoOfStudentHavingNameAchyut
我应该运行什么查询?您应该在选择和分组依据名称中包含name
SELECT name, Count(*)
From Student
group by name
您可以在COUNT()函数中设置条件:
select count(case when Name = 'Ashok' then 'X' end) as NoOfStudentHavingNameAshok,
count(case when Name = 'Achyut' then 'X' end) as NoOfStudentHavingNameAchyut
from Student
这是更好的方法。操作:不要将数据放入列名(pivot)中,除非您必须这样做。改用行!谢谢,它可以工作,但我只想用两列显示count,比如NoOfAshok和NoOfAchyut