当前位置: 代码迷 >> Oracle认证考试 >> 请问关于数据库查询的入门有关问题
  详细解决方案

请问关于数据库查询的入门有关问题

热度:352   发布时间:2016-04-24 03:51:02.0
请教关于数据库查询的入门问题!
题目是:建立一下数据库表

create table student
(name varchar2(30),
 kecheng varchar2(30),
fenshu number(20)
)
  然后向数据库插入以下数据
insert all
into student values('张三','语文',81)
into student values('张三','数学',75)
into student values('李四','语文',56)
into student values('李四','数学',90)
into student values('王五','语文',81)
into student values('王五','数学',100)
into student values('王五','英语',40)
select count(name) from student

问题是:
(1) 找出至少有一门课成绩的学生名单;
(2) 找出平均分比“王五”的平均分高的学生;
(3) 找出至少有一门课成绩大于80的学生;
(4) 列出各门课程的最低分学生;
(5) 列出所有学生都及格的课程

请各位大佬帮忙写个查询语句,小弟刚刚接触oracle  谢谢大家!!!!

------解决方案--------------------
SELECT DISTINCT T.NAME FROM STUDENT T WHERE T.FENSHU > 0;

SELECT T.NAME
  FROM STUDENT T
 GROUP BY T.NAME
HAVING AVG(T.FENSHU) > (SELECT AVG(T.FENSHU)
                          FROM STUDENT T
                         WHERE T.NAME = 'wangwu'
                         GROUP BY T.NAME);

SELECT DISTINCT (T.NAME) FROM STUDENT T WHERE T.FENSHU > 80;

SELECT T.NAME, T1.KECHENG, T1.FENGSHU
  FROM STUDENT T,
       (SELECT KECHENG, MIN(FENSHU) FENGSHU FROM STUDENT GROUP BY KECHENG) T1
 WHERE T.KECHENG = T1.KECHENG
   AND T1.FENGSHU = T.FENSHU;
   
SELECT DISTINCT KECHENG
  FROM STUDENT T
 WHERE T.KECHENG NOT IN
       (SELECT DISTINCT (KECHENG) KECHENG FROM STUDENT T WHERE T.FENSHU < 60)

------解决方案--------------------
好像是网上盛传的面试题
  相关解决方案