作者paranoia5201 (社会黑暗、行路难)
标题Re: [SQL] 面试题目求解
时间Thu Sep 24 10:52:51 2020
建议解法(各资料库可能有所差异):
二
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 後面就不知
: 道怎麽写了
: 第二题红字部分是不确定的部分,应该是不能直接写一个资料表没有的栏位出来
: 第三题最简单没什麽问题
: 请各位高手帮我看看指点指点
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.216.236 (台湾)
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1600784726.A.11B.html
: → konkonchou: 建议先去了解table join再回头看题目就会懂了 09/23 02:49
: → konkonchou: https://www.techonthenet.com/oracle/joins.php 09/23 02:50
: 推 mathrew: 两题你会 join 就都可以解了 09/23 05:18
: join只有一个table 的话也能用吗?
: 那请问排名那题要怎麽让排名栏位显示出来呢?
: ※ 编辑: kop14922000 (42.73.216.236 台湾), 09/23/2020 14:08:24
: 推 funk6478: 可以自己JOIN自己 薪资排名用row_number() 或RANK() 09/23 14:31
: 推 paranoia5201: 这些都很基本,晚点写答案给你。 09/24 00:24
: 自己目前写出来是这样
: https://i.imgur.com/9cM2RHs.png
: 第二题说实话还是看不太懂什麽意思QQ
: 排名那题用了rank( ) over 应该没问题了
: 找主管名字那题不确定是不是这样写
: 总觉得怪怪的
: ※ 编辑: kop14922000 (42.73.216.236 台湾), 09/24/2020 04:52:26
: ※ 编辑: kop14922000 (42.73.216.236 台湾), 09/24/2020 04:53:46
: ※ 编辑: kop14922000 (42.73.216.236 台湾), 09/24/2020 04:55:05
: 推 funk6478: 第二题是要用课程left join教师left join群组 09/24 10:18
: → funk6478: 并且用case去写教师名称和群组名称为null的情况 09/24 10:20
: → funk6478: 还有你主管名称那题要把where改成on 09/24 10:23
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 18.194.116.40 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1600915973.A.879.html
1F:推 kop14922000: 谢谢你的回覆,想请问排名那题,所以是可以select 09/24 13:23
2F:→ kop14922000: 里面再selecet一次直接做过滤吗?(直接用过滤好的t 09/24 13:23
3F:→ kop14922000: able做排名的意思? 09/24 13:23
4F:→ paranoia5201: 就是。如果不需要排名的栏位,其实order就完成了。 09/24 15:12