Подсчитайте количество учеников и отобразите в другой таблице - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть ученик и таблица курса:

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

Как мне получить:

а. Таблица с подробностями курсов, в которые поступили более 2 студентов.

б. Таблица курса вместе со столбцом подсчета.

Что я пробовал для первой проблемы:

 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 |
    +---------+----------+----------+-----------+

Таблица курсов

+-----------+-------------+
| 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       |
+-----------+-------------+--------+

1 Ответ

0 голосов
/ 28 апреля 2018

Первая часть:

Вам нужно использовать JOIN и HAVING

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

Вторая часть:

Вам нужно JOIN и GROUP 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...