次のスキーマを持つ 2 つの MySql テーブルがあります
リーリーここで、学生が学期中のロール番号 RNO を持つように、すべての (RNO, year, Sem) トリプルを見つける必要があります。 年度ごとに定義されているように、Sem は少なくとも 3 つ以上の異なるコースを受講/登録しており、それぞれが異なる学部によって提供されています。
私のコードは次のとおりです
リーリー(Row_Number を使用して、列の 1 つに Distinct キーワードを適用しました) ただし、学生が 2 つの異なる学期で 3 つ以上のコースに登録しており、出力が 2 行ではなく 1 行である場合、このコードは失敗します。これが起こる理由とその修正方法
これはサンプル データとスキーマの SQL コードです
リーリーここに DB Fiddle へのリンクがあります。
P粉9377693562024-02-26 10:50:57
如果我没猜错の话
登録.RNO、登録.年、登録.Semを選択します 登録から course.CNO=Register.CNO の内部結合コース RNO、年、Semごとにグループ化 COUNT(distinct course.CNO)>=3 かつ COUNT(distinct course.DeptId) >=3 である;