• 2041. 面试中被录取的候选人


    SQL架构

    表:Candidates

    +--------------+----------+
    | Column Name  | Type     |
    +--------------+----------+
    | candidate_id | int      |
    | name         | varchar  |
    | years_of_exp | int      |
    | interview_id | int      |
    +--------------+----------+
    candidate_id 是这个表的主键。
    该表的每一行都表示候选人的姓名、工作年限以及面试 ID 。
    

    表:Rounds

    +--------------+------+
    | Column Name  | Type |
    +--------------+------+
    | interview_id | int  |
    | round_id     | int  |
    | score        | int  |
    +--------------+------+
    (interview_id, round_id)是本表的主键。
    本表的每一行都表示一轮面试的分数
    

    编写一个 SQL 查询,查询出至少有两年工作经验、且面试分数之和 严格大于 15 的候选人的 ID 。

    可以以 任何顺序 返回结果表。

    查询结果的格式如下例所示。

    示例:

    输入:
    Candidates table:
    +--------------+---------+--------------+--------------+
    | candidate_id | name    | years_of_exp | interview_id |
    +--------------+---------+--------------+--------------+
    | 11           | Atticus | 1            | 101          |
    | 9            | Ruben   | 6            | 104          |
    | 6            | Aliza   | 10           | 109          |
    | 8            | Alfredo | 0            | 107          |
    +--------------+---------+--------------+--------------+
    Rounds table:
    +--------------+----------+-------+
    | interview_id | round_id | score |
    +--------------+----------+-------+
    | 109          | 3        | 4     |
    | 101          | 2        | 8     |
    | 109          | 4        | 1     |
    | 107          | 1        | 3     |
    | 104          | 3        | 6     |
    | 109          | 1        | 4     |
    | 104          | 4        | 7     |
    | 104          | 1        | 2     |
    | 109          | 2        | 1     |
    | 104          | 2        | 7     |
    | 107          | 2        | 3     |
    | 101          | 1        | 8     |
    +--------------+----------+-------+
    输出:
    +--------------+
    | candidate_id |
    +--------------+
    | 9            |
    +--------------+
    解释:
    - 候选人 11 :总分是 16 ,1 年工作经验。由于工作年限,不列入结果表。
    - 候选人 9 :总分是 22 ,6 年工作经验。列入结果表。
    - 候选人 6 :总分是 10 ,10 年工作经验。由于分数不足,不列入结果表。
    - 候选人 8 :总分是 6 ,0 年工作经验。由于工作年限和分数,不列入结果表。
    1. with t1 as (select
    2. candidate_id,interview_id
    3. from
    4. Candidates
    5. where years_of_exp >=2 # 至少有两年工作经验 的候选人的 ID
    6. ) ,t2 as(
    7. select
    8. interview_id
    9. from
    10. Rounds
    11. group by
    12. interview_id
    13. having sum(score) > 15 #面试分数之和 严格大于 15 的候选人的 ID
    14. )
    15. select
    16. t1.candidate_id
    17. from
    18. t1 join t2 #取交集
    19. using(interview_id)

  • 相关阅读:
    被误解的Event Sourcing
    腾讯云上创建 对象存储cos
    【再识C进阶3(上)】详细地认识字符串函数、进行模拟字符串函数以及拓展内容
    WebSocket消息推送
    Hypervisor Platform无法执行xmm寄存器fpu指令sse解决方法
    Python3 如何获取照片的 Exif 信息?
    安装RabbitMQ【普通安装+Docker安装(首选)】
    Bootstrap5 安装使用
    数据传输POST心法分享,做前端的你还解决不了这个bug?
    10.java项目-尚医通(10)
  • 原文地址:https://blog.csdn.net/m0_69157845/article/details/125612585