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

Creating a grouped, aggregated, uniquely ordered query that reports 0s

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

目前我用的是简单的

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 问题。

您需要教职员工名单。让我假设你有一个单独的 table:

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