[英]am new to mysql queries, i want to join these four tables, count the number of students who belong to each school and group them by school name
我是 mysql 查询的新手,我想加入这四个表我想计算属于每所学校的学生人数并按学校名称对他们进行分组。
然后我想找到每所学校的男女学生人数注意:考虑到表格中有实际数据
这是我正在尝试做的,但没有给出实际结果
SELECT COUNT(studentid) AS totalStudentsRegistered,
s.schoolid,s.schoolName
FROM student s,course c,program p,school s
WHERE s.cousreid = c.courseid
AND c.programid= p.programid
AND p.schoolid= s.schoolid
GROUP BY s.schoolName
-----------------
table A (student)
-------------------------------------------------------------
studentid | Name | age | gender |courseid
-------------------------------------------------------------
1 | joe goe | 23 |male |1
2 |sands sou | 20 |female |2
3 |marry goe | 23 |male |1
4 |jane mand | 20 |female |2
-------------------------------------------------
table b (courses)
-------------------------------------------------------------
courseid | couseName | programid
-------------------------------------------------------------
1 | Math | 1
2 | science | 2
-------------------------------------------------------------
table c (programs)
-------------------------------------------------------------
programid | programName | schoolid
-------------------------------------------------------------
1 | Degree | 1
2 | Diploma | 2
-------------------------------------------------------------
table c (school)
-------------------------------------
schoolid | schoolname
-------------------------------------
1 | school of math
2 | school of scince
-------------------------------------
您可以使用这样的查询
SELECT sc.schoolid, sc.schoolName,
COUNT(st.studentid) AS totalStudentsRegistered,
SUM(st.gender = 'male') AS totalmalestudent,
SUM(st.gender = 'female') AS totalfemalestudent
FROM student st
JOIN courses c ON st.courseid = c.courseid
JOIN programs p ON c.programid = p.programid
JOIN school sc ON p.schoolid = sc.schoolid
GROUP BY sc.schoolid, sc.schoolName
在哪里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.