Sql 计算Access查询中出现的最大值

Sql 计算Access查询中出现的最大值,sql,ms-access,Sql,Ms Access,以下是两个相关的表格 CREATE TABLE SCHOOL (School_ID char(3), School_Name char(15), School_Address char(15), School_City char(15), School_State char(2), School_Zip char(5), School_Type char(15)); CREATE TABLE STUDENT (School_ID char(3), St_LastName char(15), St

以下是两个相关的表格

CREATE TABLE SCHOOL
(School_ID char(3), School_Name char(15), School_Address char(15), School_City char(15), School_State char(2), School_Zip char(5), School_Type char(15));
CREATE TABLE STUDENT
(School_ID char(3), St_LastName char(15), St_FirstName char(15), St_DOB char(15), St_SS# char(15), St_Address char(15),St_City char(15), St_State char(2),st_Zip char(5), st_phone char(15));
我试图在access中编写查询:显示学生人数最多的学校id 但是我的查询显示的是学生的名字,带有最大的学校ID,而不是事件。请帮助我

查询如下:

SELECT STUDENT.School_ID, SCHOOL.School_Name, STUDENT.St_LastName, STUDENT.St_FirstName
FROM (SELECT MAX(STUDENT.School_ID) as max
FROM SCHOOL INNER JOIN STUDENT ON (SCHOOL.School_ID = STUDENT.School_ID) AND (SCHOOL.School_ID = STUDENT.School_ID)
)  AS Overallcount, SCHOOL INNER JOIN STUDENT ON (SCHOOL.School_ID = STUDENT.School_ID) AND (SCHOOL.School_ID = STUDENT.School_ID)
WHERE (((STUDENT.School_ID)=([Overallcount].[max])));

最简单的方法是进行聚合并使用
top
orderby

select top   1    school_id
from student
group by school_id
order by COUNT(*) desc

美好的请注意,MS Access将返回顶部记录的匹配项,即如果两个记录的计数相同,则返回多个记录。此答案仅返回1个值。如果2个学生添加了与STUDENT.school_id 1对应的记录,那么它应该返回2次school_id(意味着它应该显示1两次)@UsmanShafiArain。您的问题是,您希望返回最多学生的学校id,这就是此答案的作用。如果你想返回学校里的所有学生,你可能应该问另一个问题,提供样本数据,以及你想要的结果。