Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对MS-SQL中同一列的不同值使用计数函数?_Sql_Sql Server_Database_Sql Server 2008_Sql Server 2005 - Fatal编程技术网

如何对MS-SQL中同一列的不同值使用计数函数?

如何对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行数据插入到表中 我想显示一个计算结果的结果,其名称为“

对于DB
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