SQL:大家快来看看,某知名公司面试题

一,表A记录了某学校全体学生的课程成绩,表结构如下:name(姓名),grade(年级),kecheng(课程),score(分数)
1.筛选出没门课都大于80分的学生姓名
2.新增一列分数分档:优秀,良好,及格,不及格,并筛选出成绩为不及格的明细数据。
Tips:存在部分学生没参加考试的情况。

二,对表A,查询每个学生分数最高与分数最低的课程以及对应的分数,并统计个年级成绩最高与最低的课程分布。

三,对表A,查询各年级总分在300分以上学生人数。

四,表B奖惩表,表结构如下:name(姓名),grade(年级),item(奖惩项),查询每个年级有过奖惩的人数比例。
Tips:表B为表A的真子集。

五,统计表A中没个学生总分的分布,要求分数没每10分为一档,要求语句简单,尽量不使用case when 语句.

六,如何将表A转化为如下表结构:name,grade,课程A分数,课程B分数,课程C分数。。。

七,比较如下SQL差异
A:
select *
from table_name a
left join table_name_b b
on a.id = b.id
where a.age>18 and b.rule_id = 1 ;

B:
select *
from (select * from table_name where age >18) a
left join (select * from table_name_b where rule_id =1) b
on a.id = b.id;

九,简要说明connect by level的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值