首页 > 解决方案 > SQL:计算一个类别中不同项目的总数

问题描述

我有一个名为 Courses 的表,其中包含以下数据:

Field   | Specialisation


science    pathology
arts       film studies
science    neuroscience
arts       english
science    biotechnology
arts       english 
arts       music  
science    biotechnology

我想编写一个 SQL 查询,显示表中每个字段的不同专业的总数(例如,对于科学,会有 3 个不同的专业,对于艺术,会有 3 个不同的专业)。

我尝试了以下查询:

SELECT Courses.Field,
count(*) AS Count
FROM Courses
GROUP BY Courses.Field;

但是,这显示了每个领域的专业化总数。如何获得一个领域的不同专业的总数?

标签: mysqlsqlcount

解决方案


使用distinct内部计数

SELECT Courses.Field,
count(distinct Specialisation) AS Count
FROM Courses
GROUP BY Courses.Field;

推荐阅读