2017-07-22 2 views
-3

サブクエリーを使用して回答を得る必要があります。付属のスキーマ図を参照してください。部門名で昇順に並べ替えて、名前、部門名、トップパフォーマーのマークを表示するクエリを作成します。

Refer the schema diagram

+0

私は出力を見つけることを試みましたプライマリキーを照合して複数のサブクエリを使用しますが、目的の出力が得られません。 –

答えて

0

この

select student.student_id,student.student_name,department.department_name,mark.value 
from student left join department on student.department_id=department.department_id 
left join mark on student.student_id=mark.student_id 
left join subject on subject.subject_id=mark.subject_id 
where subject.subject_name='Maths' 
order by department_name , mark.value desc ; 

を試してみていますが、各部門のトップ10をしたい場合は、以下のようなまたはサブクエリ「句で」使用することができます。

select * from (

    select student.student_id,student.student_name,department.department_name,mark.value 
    ,row_number() over(partition by department.department_id order by mark.value desc) as rowNumber 
    from student left join department on student.department_id=department.department_id 
    left join mark on student.student_id=mark.student_id 
    left join subject on subject.subject_id=mark.subject_id 
    where subject.subject_name='Maths' 

) studentData where rowNumber<=10 ; 
関連する問題