SQL 面试题


//没有学过赵老师课程的学生
SELECT * FROM student s 
         WHERE sid NOT in(
         SELECT sid 
    FROM  scgrade sc 
  JOIN  lesson l on sc.lid = l.lid
  WHERE l.lteacher = '赵老师')


列出2门以上(含2门)不及格学生名字及平均成绩
SELECT * from student  s JOIN (
SELECT sid,AVG(scgreade) as savg  from scgrade where sid in(
	SELECT sid from scgrade where scgreade <60
  GROUP BY sid HAVING COUNT(*)>=2
) GROUP BY sid
) r on s.sid = r.sid

列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
SELECT * from student where sid in (
SELECT sid from scgrade sc 
where sc.lid in(1,3) 
GROUP BY sid HAVING count(sid)=2
)
(1)统计有学生选修的课程门数   select COUNT(DISTINCT lid) from scgrade 

(2)求选修C4课程的女学生的平均年龄
SELECT avg(s.age) from student s where s.sex='女' and s.sid IN(
SELECT sid from scgrade sc WHERE lid ='2')
(3)求刘老师所授的课程的每门课程的平均成绩
SELECT  l.lname,AVG(sc.scgreade)
        from scgrade sc ,lesson l
        WHERE l.lteacher='刘老师' and sc.lid = l.lid
        GROUP BY l.lname 
(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECT lid as '课程号' ,count(sid) as '人数' 
from scgrade sc  
GROUP BY lid HAVING COUNT(*)>=1 
ORDER BY count(sid) DESC,lid ASC


其他

//查询二级别表 最多的
SELECT * from banners b JOIN (
SELECT Did,COUNT(Did) as s from article  
	GROUP BY Did  
	 ) as ar

on b.Did = ar.Did
ORDER BY ar.s DESC


SELECT b.Did,b.Dcontent,COUNT(ar.Did) as rsum from 
           banners  b 
         JOIN 
           article  ar
           on b.Did = ar.Did
GROUP BY ar.Did  
ORDER BY rsum desc



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值