Re: [SQL] 面试题目求解

楼主: paranoia5201 (迈向研究生)   2020-09-24 10:52:51
建议解法(各数据库可能有所差异):

select
subject_id,
subject_name,
note,
ifnull(teacher_name, '此课程尚无授课人') teacher_name,
group_name
from Subject a
left join Teacher b
on a.teacher_id = b.teacher_id
left join Group c
on b.group_id = c.group_id
三.1
select
a.id,
a.name,
a.title,
a.dpt,
a.sex,
a.slry,
b.name manager_name
from EET001 a, EET001 b
where a.id = b.id
三.2
select
a.*,
row_number () over (order by dpt_slry desc) ranking
from (
select
dpt,
sum(slry) dpt_slry
from EET001
group by dpt
order by dpt_slry desc
) a
三.3
select
name,
title,
slry
from EET001
where slry < 50000
※ 引述《kop14922000 (MrDin)》之铭言:
: 前几天朋友传给我看的面试题目
: 想问一下该怎么解
: https://i.imgur.com/f35ZGU3.jpg
: https://i.imgur.com/l3QTMWX.jpg
: https://i.imgur.com/im298fL.jpg
: 下面是我的解法
: https://i.imgur.com/MUzqupK.jpg
: 第二大题看不懂题目的意思
: 第三大题第一题最后面主管id 不知道要怎么跟id 连在一起 还要把主管id 改成主管姓名
: 初步想法是
: select ID, name, title, dpt, sex, sort, b_id as主管姓名 from EET001 后面就不知
: 道怎么写了
: 第二题红字部分是不确定的部分,应该是不能直接写一个资料表没有的字段出来
: 第三题最简单没什么问题
: 请各位高手帮我看看指点指点
:
作者: kop14922000 (MrDin)   2020-09-24 13:23:00
谢谢你的回复,想请问排名那题,所以是可以select里面再selecet一次直接做过滤吗?(直接用过滤好的table做排名的意思?
楼主: paranoia5201 (迈向研究生)   2020-09-24 15:12:00
就是。如果不需要排名的字段,其实order就完成了。

Links booklink

Contact Us: admin [ a t ] ucptt.com