gpt4 book ai didi

mysql - 统计学生人数并显示在另一个表格中

转载 作者:行者123 更新时间:2023-11-29 02:11:52 24 4
gpt4 key购买 nike

我有学生表和类(class)表:

Student(Roll_no(primary), Name, Course_id(foreign))
Course(Course_no(primary), Course_name)

我将如何检索:

一个。包含 2 名以上学生被录取的类(class)详情的表格。

Course 表以及计数列。

我对第一个问题的尝试:

 SELECT * FROM Course WHERE(SELECT COUNT(*) FROM Student GROUP BY Course_no WHERE COUNT(*) > 2);

我不确定我做了什么,但那没有用。我是数据库系统的新手.

样本:学生表

    +---------+----------+----------+-----------+
| Roll_no | Name | Semester | Course_no |
+---------+----------+----------+-----------+
| 1 | a | 3 | 101 |
| 2 | b | 5 | 101 |
| 3 | c | 3 | 101 |
| 4 | c | 3 | 101 |
| 5 | d | 3 | 101 |
| 7 | b | 4 | 102 |
+---------+----------+----------+-----------+

类(class)表

+-----------+-------------+
| Course_no | Course_name |
+-----------+-------------+
| 101 | BCA |
| 102 | BSC |
+-----------+-------------+

对于第一部分,我希望表格如下:

+-----------+-------------+
| Course_no | Course_name |
+-----------+-------------+
| 101 | BCA |
+-----------+-------------+

对于第二部分,我希望有一个像

这样的表格
+-----------+----------------------+
| Course_no | Course_name |Total |
+-----------+-------------+--------+
| 101 | BCA |5 |
| 102 | BSC |1 |
+-----------+-------------+--------+

最佳答案

第一部分:

您需要使用JOINHAVING

SELECT c.Course_no,c.Course_name
FROM Course c
INNER JOIN Student s on c.Course_no = s.Course_id
GROUP BY c.Course_no,c.Course_name
HAVING count(1) > 2

sqlfiddle:http://sqlfiddle.com/#!9/387386/3

第二部分:

您需要JOINGROUP BY COUNT

SELECT c.Course_no,c.Course_name,count(1) 'totle'
FROM Course c
INNER JOIN Student s on c.Course_no = s.Course_id
GROUP BY c.Course_no,c.Course_name

sqlfiddle:http://sqlfiddle.com/#!9/bad7e3/1

关于mysql - 统计学生人数并显示在另一个表格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076595/

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