SQL面试题

[url=http://penghao122.iteye.com/blog/54810]此题目出处[/url]
有3个表S,C,SC
S(SNO,SNAME)代表(学号,姓名)
C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)
SC(SNO,CNO,SCGRADE)代表(学号,课号成绩)
问题:
1,找出没选过“黎明”老师的所有学生姓名。
2,列出2门以上(含2门)不及格学生姓名及平均成绩。
3,即学过1号课程有学过2号课所有学生的姓名。
请用标准SQL语言写出答案,方言也行(请说明是使用什么方言)。
1、
 
select sname from s
join sc on (s.sno =sc.sno )
join c on (c.cno = sc.cno)
where cteacher = '黎明'

2、
 
select sname,avg(scgrade) from
(
select s.sname, sc.scgrade from s
join sc on (s.sno =sc.son )
where sno in
(
select sno from sc
where scgrade<60
group by sno
haviing count(*)>=2
)
)
group by sno;



3
 
select sname from s
where
sno in (select sno from distinct sc where cno = 1)
and
sno in (select distinct sno from sc where cno = 2)

======================================================================
[url=http://community.csdn.net/Expert/TopicView1.asp?id=4965875]此题目出处[/url]
一个简单的表TABLE 有100条以上的信息,其中包括:
产品 颜色 数量
产品1 红色 123
产品1 蓝色 126
产品2 蓝色 103
产品2 红色 NULL
产品2 红色 89
产品1 红色 203
。。。。。。。。。。。。
请用SQL语句完成以下问题:
1。按产品分类,仅列出各类商品中红色多于蓝色的商品名称及差额数量:
2。按产品分类,将数据按下列方式进行统计显示
产品 红色 蓝色
------------------------------------------

create table t
(
cp varchar2(10),
ys varchar2(5),
sl number(5)
);

------------------------------------------

insert into t values('产品1','红色',123 );
insert into t values('产品1','蓝色',126 );
insert into t values('产品2','蓝色',103 );
insert into t values('产品2','红色',null );
insert into t values('产品2','红色',89 );
insert into t values('产品1','红色',203 );

------------------------------------------
1.

select t1.cp from
(
select cp, sum(sl) sum_sl from t where ys='红色' group by cp
) t1
join
(
select cp, sum(sl) sum_sl from t where ys='蓝色' group by cp
) t2
on t1.cp=t2.cp
where t1.sum_sl >t2.sum_sl


2.

select t1.cp 产品, t1.sum_sl 红色, t2.sum_sl 蓝色 from
(
select cp, sum(sl) sum_sl from t where ys='红色' group by cp
) t1
join
(
select cp, sum(sl) sum_sl from t where ys='蓝色' group by cp
) t2
on t1.cp=t2.cp



======================================================================
题目请查看附件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值