sql-server - SQL求最大值然后判断哪个名字的值最大

标签 sql-server database

我正在尝试查找“哪个讲师在 2017 年秋季参加的类(class)数量最多”。

我知道我必须使用其中的 max 函数,而且我还必须计算并比较哪个 instructor 具有最大值。但我不知道该怎么做。我已经写了部分查询是

SELECT DISTINCT firstname, lastname
FROM Faculty F 
INNER JOIN CourseSection C ON F.FacID = C.FacID

Faculty表的数据为

enter image description here

CourseSection 表是

enter image description here

最佳答案

你能试试这样的东西吗?

SQL 服务器:

SELECT TOP 1 F.firstname, F.lastname
FROM Faculty F 
JOIN (
    SELECT FACID, COUNT(*) CNT FROM CourseSection GROUP BY FACID
) C
ON F.FacID = C.FacID
ORDER BY C.CNT DESC

MySql:

SELECT F.firstname, F.lastname
FROM Faculty F 
JOIN (
    SELECT FACID, COUNT(*) CNT FROM CourseSection GROUP BY FACID
) C
ON F.FacID = C.FacID
ORDER BY C.CNT DESC
LIMIT 1

允许关系

这是一个 SQL Server 代码(使用公用表表达式),允许在出现联系时选择多个讲师:

; with t as (
select FacID, COUNT(*) CNT
from CourseSection
group by FacID
    )
select F.FirstName, F.LastName, t.CNT from t join Faculty F on F.FacID = t.FacID
where cnt = (select max(cnt) from t)
;

关于sql-server - SQL求最大值然后判断哪个名字的值最大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43078486/

相关文章:

sql-server - 可用于加密 SQL Server Express 数据库的选项有哪些?

sql-server - 从数据库中删除实体时如何提高性能?

mysql - 纠正表关系的数据库结构 (MySQL)

sql - 两列作为主键还是一列作为 PK + 索引?

mysql - 无法通过 MySQL Workbench 连接到 Azure MySQL

sql-server - 从两个值创建唯一编号;位移位?

sql-server - SQL Server 2014 安装卡住(挂起)或需要很长时间才能完成

sql-server - 需要 SSDT 循环引用/ Unresolved reference 解决方法

sql-server - 是否有 ms sql 设置允许 value != null 为 true

database - 使用复合索引通过查询参数的多个组合进行查询的最佳方法?