创建报告为0的分组,聚合,唯一排序的查询

问题描述

我正在尝试为非技术同事设计一些查询,以自动以他们所需的格式自动检索有关注册的一组数据。

当前我使用简单的

SELECT Faculty,COUNT(*) 
FROM Registrations 
GROUP BY Faculty

其结果是学院列表和当前注册

问题是它不会列出任何具有0个注册的教员。

此外,结果的顺序对于实施应该是唯一的。

为此,我尝试使用

ORDER BY CASE 
WHEN Faculty = [faculty 1] then 0
WHEN Faculty = [faculty 2] then 1
...
WHEN Faculty = [faculty n] then n-1

但是,当某些系没有任何注册时,此实现似乎与预期不符。

我怀疑外部自我连接可能有助于检索0值,这可能解决了ORDER BY CASE问题。

解决方法

您需要教师名单。让我假设您有一个单独的表:

SELECT f.Faculty,COUNT(r.Faculty) 
FROM Faculty f LEFT JOIN
     Registrations r
     ON f.Faculty = r.Faculty
GROUP BY f.Faculty;