gpt4 book ai didi

mysql - 在 CS 中找到最受学生欢迎的辅修专业

转载 作者:行者123 更新时间:2023-11-30 23:12:11 24 4
gpt4 key购买 nike

我是 SQL 新手,所以这个问题可能很愚蠢。

这是相关表格的示例行:学生:

+-------+----------+---------+------+------+-------+---------+-----------+
| StuID | LName | Fname | Age | Sex | Major | Advisor | city_code |
+-------+----------+---------+------+------+-------+---------+-----------+
| 1001 | Smith | Linda | 18 | F | 600 | 1121 | BAL |

小调:

+-------+------+
| StuID | DNO |
+-------+------+
| 1004 | 520 |

部门:

+------+----------+--------------------------+------+--------------+--------+
| DNO | Division | DName | Room | Building | DPhone |
+------+----------+--------------------------+------+--------------+--------+
| 10 | AS | History of Art | 268 | Mergenthaler | 7117 |

我想找到CS专业学生中最受欢迎的辅修专业(DNO = 600)这是我的查询,它有效但很丑陋:

SELECT DNO, count 
FROM (SELECT DNO, COUNT(*) AS count
FROM Minor_in
WHERE StuID IN (SELECT StuID
FROM Student
WHERE (Major = 550 OR Major = 600))
GROUP BY DNO
) AS C1
WHERE count IN (
SELECT MAX(count)
FROM (
SELECT DNO, COUNT(*) AS count
FROM Minor_in
WHERE StuID IN (SELECT StuID
FROM Student
WHERE (Major = 550 OR Major = 600))
GROUP BY DNO
) AS MinorCount
);

有没有更好的办法?非常感谢!

最佳答案

这个怎么样?

select stuid.dno, count (*)
from stuid inner join student
on stuid.stuid = student.stuid
where student.major in (550, 600)
group by stuid.dno
order by count (*) desc

我假设 dnos 550 和 600 是计算机科学类(class)

关于mysql - 在 CS 中找到最受学生欢迎的辅修专业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com