0

私はSQLクエリが初めてなので、あまり知りません

私は登録という名前のテーブルを持っています

このテーブルには次の構造があります

Student_ID int,
Course varchar(15),
Score int,
Semester varchar(15),
Discipline varchar(10),
Campus varchar(15),
Degree varchar(10),
Year int

主キーは含まれていません。同じ大学の 4 つの異なるキャンパスの学生のデータがあるため、student_id が繰り返されます。

特定の学期に 5 つ以上のコースを受講した学生の総数が必要です

質問が明確になったことを願っています。

4

3 に答える 3

1

を使用GROUP BYHAVING COUNTて、5つ以上のコースを受講したすべての学生を取得します。

SELECT student_id
FROM yourtable
WHERE Semester = ....
GROUP BY student_id
HAVING COUNT(DISTINCT Course) > 5

学生の数を取得するには、クエリが返す行の数を数えることができます。

SELECT COUNT(*) AS total FROM
(
    SELECT student_id
    FROM yourtable
    WHERE Semester = ....
    GROUP BY student_id
    HAVING COUNT(DISTINCT Course) > 5
)
于 2012-12-25T22:35:43.570 に答える
0
SELECT COUNT(DISTINCT(sub.Student_ID)) FROM
(
SELECT un.Student_ID, COUNT(*) FROM university un 
GROUP BY un.Student_ID, un.Semester
HAVING 
COUNT(un.Course)>5
) AS sub

テーブル名はUniversityだと思います

于 2012-12-25T23:37:03.023 に答える