1

次のような学生テーブルがある場合:

original_student            other_student
10123                       20234    
10234                       20456 

そして、学生クラスを含む他のテーブルがあります

Student_code                Class
10123                       class_001
20234                       class_002     
10234                       class_003
20456                       class_004

私の質問は、student_table に関するものです。original_student と other_student の行のクラスの合計数が 2 以上であることを確認するにはどうすればよいですか。original_student と other_student を組み合わせてカウントする必要があります。

ありがとう

4

2 に答える 2

0
select s.original_student, s.other_student, count(*) 
from student_table s      
inner join student_class c1 on c1.Student_code = s.original_student
inner join student_class c2 on c2.Student_code = s.other_student
group by s.original_student, s.other_student
having count(*) >= 2
于 2013-11-11T09:01:34.060 に答える
0

IN(...)結合条件を使用して、単一の結合でそれを行うことができます。

select s.original_student, s.other_student, count(distinct sc.class) 
from student_table s      
join student_class sc on sc.Student_code in (s.original_student, s.other_student)
group by s.original_student, s.other_student
having count(distinct sc.class) > 1

は、各生徒が同じクラス コードに関連付けられている場合distinctに使用されcount()ます。これは (おそらく) 2 つのクラスとしてカウントされず、1 つのクラスとしてカウントされます。

于 2013-11-11T10:13:14.527 に答える