0

我对 SQL 很陌生,昨天刚开始学习,所以如果这实际上是一个烦人的新手问题,请接受我的歉意。我正在学习 SQL 作为大学课程的一部分。

我有一个平面学生数据库,我必须将其导入 MSaccess。我被赋予了这个任务:

注册人数最少的课程

这是我的数据库的样子:

在此处输入图像描述

正如您通过查看 Enrollments 所看到的,有 10 门课程,其中有 8 个注册。我的问题是,如何对 Enrollments 列中的所有最小值进行分组?

我首先尝试了这个:

SELECT 
    MIN Enrolments AS Leastnumberofstudents 
FROM 
    DataFIle; 

但当然,这只返回该列的最小值 8。

然后我尝试了:

SELECT [Course Name], MIN (Enrolments) AS [Least Number of Students]
FROM DataFile
GROUP BY (Enrolments), [Course Name]
ORDER BY (Enrolments), [Course Name];

但这会返回所有课程,而不仅仅是那些具有最小值的课程。

在此处输入图像描述

我也考虑过只使用 WHERE = 8 但我不认为这是我被要求做的。

任何朝着正确方向的帮助或轻推都会如此学徒并再次道歉

4

2 回答 2

1

就像是:

SELECT * FROM DataFile WHERE Enrolments = (SELECT MIN(Enrolments) FROM DataFile);
于 2020-06-07T23:58:46.120 回答
1

只需使用order byselect top

select top 1 df.*
from datafile as df
order by enrolments asc;

这假设您使用的是 MS Access。

于 2020-06-08T00:04:20.697 回答