0

学校が複数の学期を同時に持つ可能性があると仮定して、多数の学校で最大の、最新の、または現在アクティブな学期を選択する必要があります (つまり、優秀な学生が登録されている 1 つの学期と、非優等生のための別の学期) )。また、優等学期の開始日は同じである可能性がありますが、学期だけでなく1年間続く可能性があるため、終了日も考慮する必要があります.学期が必要です.

コードは次のようになります。

SELECT t.school_id, t.term_id, COUNT(s.id) AS size, t.start_date, t.end_date 
FROM term t
INNER JOIN students s ON t.term_id = s.term_id
WHERE t.school_id = (some school id)
GROUP BY t.school_id, t.term_id
ORDER BY t.start_date DESC, t.end_date ASC, size DESC LIMIT 1;

これは、現在または最近アクティブな最大の用語を見つけるのに完全に機能しますが、そのWHERE t.school_id = (some school id)部分を削除できるようにしたいと考えています。

グループごとの標準的な最大 n は、最大または最新のタームを簡単に選択できますが、最大数の学生で最も早く終了する最新のタームを選択する必要があります。

4

1 に答える 1