作者shomingchang ( )
看板Database
标题Re: [SQL ] SQL练习题
时间Tue Dec 31 07:00:32 2013
select Selected_Student.student_ID,Selected_Student.name,sum(SCORE.score) as '
总分', avg(SCORE.score) as '平均' from ((select * from STUDENT where grade=1
limit 100) union
(select * from STUDENT where grade=2 limit 100) union
(select * from STUDENT where grade=3 limit 100) union
(select * from STUDENT where grade=4 limit 100) union
(select * from STUDENT where grade=5 limit 100) union
(select * from STUDENT where grade=6 limit 100)) as Selected_Student inner
join SCORE on Selected_Student.student_ID = SCORE.student_ID group by
Selected_Student.student_ID
※ 引述《john9872 (菸酒生)》之铭言:
: 假设我有两个资料表,分别为"学生"及"成绩",
: 资料栏位分别为: ( student_ID, 姓名, 年级 ) 及
: ( 成绩流水号, student_ID, 科目, 分数 ),
: 资料内容如下图例:
: "学生"资料表 "成绩"资料表
: ------------- -------------
: student_ID 姓名 年级 成绩流水号 student_ID 科目 分数
: ============================ ====================================
: 1 小黄 1 1 1 国文 60
: 2 小白 2 2 1 数学 70
: 3 小虎 3 3 1 英文 50
: 4 小便 4 5 2 国文 12
: . . . . . .
: . . . . . .
: . . . . . .
: 假设学生资料表共有900笔(共有1~6年级),成绩资料表1800笔(国英数3科),
: 请问要怎麽从1~6年级各挑出100名学生(共600名),并计算出他们的成绩及总分呢?
: 以下是我写的SQL:
: SELECT student_ID, SUM(分数), AVG(分数)
: FROM 学生
: GROUP BY student_ID
: ....
: 由於我是SQL初心者,所以太复杂的SQL语法还不太能理解,
: 目前是卡在要取各年级100名学生的部分,
: 不知道该如何运用WHERE或其他指令写出来(题目也有提示用JOIN)
: 麻烦大家替我解惑,谢谢各位:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.231.102.104