Sql server 用于检索结果而不重复的SQL查询

Sql server 用于检索结果而不重复的SQL查询,sql-server,Sql Server,我有一个名为Schedule的表,其中包含名为TeacherName和ClassTakenDate的字段。表中的值如下所示: TeacherName ClassTakenDate Anish 2011-10-01 Anish 2011-10-01 John 2011-10-01 John 2011-10-02 我想要这样的结果: TeacherName

我有一个名为Schedule的表,其中包含名为TeacherName和ClassTakenDate的字段。表中的值如下所示:

TeacherName       ClassTakenDate

Anish              2011-10-01

Anish              2011-10-01

John               2011-10-01

John               2011-10-02
我想要这样的结果:

TeacherName               NoOfDays

Anish                        1

John                         2

我们如何做到这一点?

ClassTakenDate
不应该在
SELECT
列表中,您需要
GROUP BY foo.TeacherName
SELECT TeacherName, 
       COUNT(DISTINCT ClassTakenDate) AS NoOfDays
FROM Schedule 
GROUP BY TeacherName
SELECT TeacherName, ClassTakenDate, COUNT( * ) AS NoOfDays 
FROM (
    SELECT DISTINCT TeacherName, ClassTakenDate
      FROM Schedule 
) AS foo
GROUP BY foo.ClassTakenDate