私は学校でSQLクラスを受講しています。
質問がありました:
「統計学部の学生の合計クレジット数が10分の1未満で、クレジット数が最も多い統計学部の学生のIDと名前を見つけます。結果をID順にリストし、重複して印刷しないでください。」
それに答えるために、私は次のことをしました:
スキーマ:
私の答え:
select DISTINCT ID, name
from student
where DEPT_NAME = 'Statistics' and TOT_CRED < .1* 128;
私の答えでは、最大単位時間128をハードコーディングしました。これは正しい解決策を提供しますが、常に機能するとは限りません。トップクラスの学生の1人は、次の方法でそれを行いました。
select distinct tochar(less.id,'00009') as ID, less.name
from student more, student less
where less.totcred<more.totcred / 10 and more.deptname = 'Statistics' and less.deptname = 'Statistics'
order by id;
恥ずかしがり屋だったので何も聞かなかったのですが、ここで「少ない」「多い」の使い方を説明してもらえますか?
more
およびless
はテーブルエイリアスです。このソリューションは、STUDENTSテーブルから自己結合を2回選択し、2つのインスタンスを区別するためにエイリアスが必要です。エイリアスは、more
およびless
よりも表現力がt1
ありt2
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加