SQL COUNT DISTINCT

2025年2月2日 | 阅读6分钟

在理解带DISTINCT关键字的Count函数概念之前,我们需要了解Count和Distinct关键字。所以,让我们从Count函数开始。

SQL中的Count是什么?

COUNT是结构化查询语言中的一个函数,用于在结果中显示表中记录的数量。在SQL中,它总是用在SELECT查询中。

Count函数的语法如下

在count示例中,我们需要在COUNT关键字后面的括号中定义列名。

Count函数示例

首先,我们需要创建一个新表,并在其上执行count函数。

以下查询使用CREATE TABLE语句创建了Teacher_Details表,其中Teacher_ID为主键。

以下SQL查询使用INSERT INTO语句插入新教师的记录到上述表中。

让我们使用以下SELECT语句查看上述表的记录。


Teacher_IDTeacher_NameTeacher_QualificationTeacher_AgeTeacher_Interview_Marks
101AnujB.tech2088
102拉曼 (Raman)MCA24NULL
104ShyamBBA1992
107VikashB.tech20NULL
111MonuMBA21NULL
114JonesB.tech1893
121ParulBCA2097
123DivyaB.tech21NULL
128HemantMBA2390
130NidhiBBA2088
132PriyaMBA22NULL
138MohitMCA2192

以下查询计算Teacher_Details表中Teacher_Age列的总值。

输出

SQL COUNT DISTINCT

上述SELECT查询的输出是十二,因为Teacher_Age字段不包含任何NULL值。

以下查询计算上述表中Teacher_Interview_Column的总值。

此查询将在屏幕上显示以下输出。

SQL COUNT DISTINCT

上述SELECT查询的输出是7,因为Teacher_Interview_Marks列中有两个五个单元格包含NULL。因此,这些五个NULL值被排除了。这就是为什么SELECT查询在结果中显示7而不是12。

Count(*)函数是什么?

这与Count函数类似,但唯一的区别是它还显示表中NULL值的数量。

Count (*)函数的语法在此处给出。

示例

让我们以上面的Teacher_Details为例。

Teacher_IDTeacher_NameTeacher_QualificationTeacher_AgeTeacher_Interview_Marks
101AnujB.tech2088
102拉曼 (Raman)MCA24NULL
104ShyamBBA1992
107VikashB.tech20NULL
111MonuMBA21NULL
114JonesB.tech1893
121ParulBCA2097
123DivyaB.tech21NULL
128HemantMBA2390
130NidhiBBA2088
132PriyaMBA22NULL
138MohitMCA2192

以下查询计算上述表中Total_Interview_Marks列的总值。

上述带COUNT(*)的SELECT查询将在屏幕上产生以下结果。

SQL COUNT DISTINCT

SQL中的DISTINCT是什么?

DISTINCT关键字在结果中显示表中列的唯一行。

DISTINCT关键字的语法在此处给出。

在DISTINCT查询中,我们也可以在WHERE子句中定义条件以检索特定值。

DISTINCT示例

首先,创建一个新表,并在其上运行Distinct关键字。

以下查询使用CREATE TABLE语句创建了Bike_Details表。

以下SQL查询使用INSERT INTO语句将新自行车的记录插入表中。

使用以下SELECT查询显示上述表的记录。


Bike_NameBike_ModelBike_ColorBike_Cost
KTM DUKE2019黑色185000
Royal Enfield2020黑色165000
Pulsar2018红色90000
Apache2020白色85,000
Livo2018黑色80,000
KTM RC2020红色195,000

表:Bike_Details

以下SQL查询提取上述Bike_Details表中Color列的distinct值。

输出

SQL COUNT DISTINCT

正如我们所见,Black、Red和White是Bike_Color列中的三个distinct值。

带DISTINCT关键字的Count函数

SELECT查询中的DISTINCT关键字与COUNT函数结合使用时,将显示表中字段的唯一数据数量。

带DISTINCT关键字的Count函数的语法如下。

带DISTINCT关键字的Count函数示例

以下两个SQL示例将解释带DISTINCT关键字的Count函数的执行。

示例 1

以下查询创建了具有四个字段的College_Students表。

以下INSERT查询将学生的记录插入College_Students表中。

以下查询显示College_Students表的详细信息。


Student_Id学生姓名Student_Age学生分数
101阿希尔 (Akhil)2895
102Abhay2786
103Sorya2679
104Abhishek2766
105Ritik2679
106Yash2988

表:College_Students

以下SQL语句计算College_Students表中Student_Age列的唯一值。

此查询将在输出中产生以下表。

SQL COUNT DISTINCT

输出显示了四个值,因为Teacher_age列包含4个唯一值。

示例 2

以下查询创建了具有四个字段的IT_Employee表。

以下INSERT查询将IT员工的记录插入IT_Employee表中。

以下查询显示IT_Employee表的详细信息。


Employee_Id(员工编号)Employee_NameEmployee_AgeEmployee_Salary
101阿希尔 (Akhil)2825000
102Abhay2726000
103Sorya2629000
104Abhishek2726000
105Ritik2629000
106Yash2925000

表:IT_Employee

以下SQL语句仅计算上述IT_Employee表中Emp_Age列的唯一值。

此查询将产生以下输出。

SQL COUNT DISTINCT
下一主题SQL UNION