私は学校でSQLクラスを取っています。 。SQLの 'more'、 'less'の使用
「あまりその第十最もクレジットと統計学科の学生の合計クレジットリストを持っている統計部門でこれらの学生のIDと名前を探す:
は疑問がありましたあなたの結果はID順であり、重複を印刷しません。
スキーマ:
はそれに答えるために、私は次のようでした
- 教室(建物、部屋番号、容量)
- 部門(DEPT名、建物、予算を)
- コース(コースID、タイトル、部門名、クレジット)
- インストラクター(ID、名前、部署名、給与)
- セクション(コースID、秒のID、学期、毎年、建物、部屋番号、タイムスロットID)
- が教える(ID、コースID、秒のID、学期、年)
- 学生(ID、名前、DEPT
- タイムスロット(タイムスロットIDは、日、開始時刻、名前、TOTクレド)
- がかかる(ID、コースID、秒のID、学期、毎年、学年)
- 顧問(SのID、I ID)、終了時刻)
- prereq(コースid、prereq id)
私の答え:私の答えで
select DISTINCT ID, name
from student
where DEPT_NAME = 'Statistics' and TOT_CRED < .1* 128;
は、私が正しい解決策を提供しますが、確かに優秀な学生のすべてtime.Oneを動作しないことになる、最大のクレジット時間128をハードコード、それを次のようでした:
を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;
私は恥ずかしがる気がしていたので、私は彼に何も聞いていませんでした。しかし、誰かがここで「less」と「more」の使用を説明できますか?
これらは 'student'テーブルのエイリアスです。このクエリは、テーブルのすべての行に対してペアごとの比較を実行するために使用されます。 – CollinD
それが一番上の学生の作品なら、教授はかなり悪いはずです。それは正しくない。 –
これらは同じテーブルが2回結合されているため必要なテーブルの別名です。 –