创建报告 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;
我正在尝试为我的非技术同事设计一些查询,以便以他们需要的格式自动检索一组有关注册的数据。
目前我用的是简单的
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;