我正在學校中使用SQL類。在SQL中使用'more','less'
有一個問題:
「找到那些學生在統計部門誰擁有更小的十分之一在最學分統計部學生的總學分表的ID和名稱。你的結果在編號順序,不要打印重複。「
要回答這個問題,我做了以下內容:
架構:
- 教室(建築物,房間號,容量)
- 部門(部門名稱,建築,預算)
- 場(當然ID,標題,DEPT名稱,學分)
- 指導員(ID,姓名,部門名,薪水)
- 節(課程編號,安全ID,學期一年,建築,房間號,時隙號)
- 教(ID,課程ID,安全ID,學期一年)
- 學生(ID,姓名,部門名,TOT CRED)
- 需要(ID,課程ID,安全ID,學期一年,等級)
- 顧問(S ID,我ID)
- 時隙(時隙號,日期,開始時間,結束時間)
- prereq(course id,prereq id)
我的回答:
select DISTINCT ID, name
from student
where DEPT_NAME = 'Statistics' and TOT_CRED < .1* 128;
在我的答案我硬編碼的最大學分128,這給正確的解決方案,但不會肯定工作的高材生所有time.One做了以下方法:
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;
我沒有問過他什麼,因爲我害羞。但有人可以解釋在這裏使用「少」和「更多」嗎?
他們是'學生'表的別名。此查詢用於在表的所有行上進行成對比較。 – CollinD
如果這是頂尖學生的工作,教授一定很糟糕。這甚至不正確。 –
由於同一個表連接兩次,它們只是表所需的表別名。 –