最近回憶起以前的一道面試題,是關於學生成績查詢的,應該比較經典,特此貼出來供大家學習。
條件:三張表,學生表student,科目表course,成績表results
表結構學生表
-- create table
create table student
( sid varchar2(10) not null,
name varchar2(10),
*** varchar2(2),
age number(2)
)
科目表
create table course
( c_id varchar2(10) not null,
c_name varchar2(20) not null
)
成績表
-- create table
create table results
( r_id varchar2(10) not null,
s_id varchar2(10) not null,
c_id varchar2(10) not null,
score number(3) default 0
)
要求顯示效果
sql語句:
select s.sid,s.name,
sum(case c.c_name when '語文' then r.score end ) as "語文",
sum(case c.c_name when '數學' then r.score end ) as "數學",
sum(case c.c_name when '英語' then r.score end ) as "英語"
from student s,course c,results r where s.sid = r.s_id and c.c_id = r.c_id group by s.sid,s.name
在附送乙個:
同時查出 語文分數》85分 以上的男生人數和女生人數
select
sum(case s.*** when '男' then count(s.***) end ) as "男生數量",
sum(case s.*** when '女' then count(s.***) end ) as "女生數量"
from student s,course c,results r where s.sid = r.s_id and c.c_id = r.c_id and c.c_name='語文' and r.score > 85
group by c.c_name,s.***
當然 我知道還有比我這個更簡練的方法,如果有請回帖告訴我,謝謝。大家共同進步。 sql查詢出各科成績最好的學生資訊
1.相關資料表 score表 user 表 sql語句如下 複製 如下 www.cppcns.com 查詢出各科成績最好的學生資訊 自連線 select top 1 from score b where b.s程式設計客棧corename 數學 order by b.score desc selec...
查詢各科成績前3和第3的學生(SQL)
資料庫面試題 其他關聯表這裡不一一寫出,僅寫出關鍵表 score 成績表 成績記錄id scoreid 學生id userid 課程id scoureid 成績score 現需要求出各科成績前三名的學生和成績,與相應的課程。實現思路 用課程id自關聯一次成績表,如果相應課程成績高則排名越高。sele...
最簡單的學生成績系統
一 題目要求 按照如下要求編寫程式。1 定義乙個用於描述學生資訊的結構型別,其中包括三個成員,分別用於描述學號 姓名和成績。2 定義乙個陣列,陣列的資料型別就是上面定義的結構型別。陣列至少可以存放10個資料項。3 從鍵盤輸入若干個學生資訊,儲存到上面定義的陣列中。4 按課程成績從小到大的順序排列陣列...