下面是一些2016年在校招聘的筆試題目,有興趣的同學(xué)可以看看。
數(shù)據(jù)庫有考試成績表(scg)包含屬性:
存儲ID 學(xué)號(sno) 科目(cno) 分?jǐn)?shù)(grade)
1 s001 c01 90
2 s001 c02 72
3 s002 c01 95
寫SQL,求:
1)分?jǐn)?shù)少于60的學(xué)號和科目,要求有:學(xué)號、科目、分?jǐn)?shù)
2)超過2科分?jǐn)?shù)>=90的人的學(xué)號和科目數(shù),按科目數(shù)由大到小排序,要求有:學(xué)號、科目數(shù)(>=90分)
3)每個人成績最好的三個科目,按學(xué)號、分?jǐn)?shù)排序,要求有:學(xué)號、科目、分?jǐn)?shù)
4)每科目,前2名的分?jǐn)?shù)差:科目、第一名學(xué)號、第二名學(xué)號、第一分?jǐn)?shù)、第二分?jǐn)?shù)、分?jǐn)?shù)差
當(dāng)數(shù)據(jù)來源為文本文件(tab分割)時,寫程序求上題b/c/d,程序語言不限(shell/python/java)等均可,或者使用偽代碼描述計算步驟。
解析:
1)
SELECT sno,cno
FROM scg
WHERE grade<60;
2)
SELECT sno,COUNT(cno)
FROM scg
WHERE grade>=90
GROUP BY sno
HAVING COUNT(cno)>2
ORDER BY cno desc;
3)本文由論文聯(lián)盟https://www.LWlm.COM收集整理
SELECT TOP 3 sno, cno, grade
FROM scg
GROUP BY sno
ORDER BY sno, grade;
4)
SELECT cno, first.sno, second.sno, first.grade, second.grade, first.grade-second.grade
FROM
( SELECT TOP 1 * FROM scg GROUP BY cno ORDER BY grade
) first, (SELECT TOP 1 *FROM
( SELECT TOP 2 * FROM scgGROUP BY cnoORDER BY grade DESC
) three
GROUP BY three.cno
ORDER BY three.grade
) second;