qq_57465337 2021-06-15 11:06 采纳率: 0%
浏览 56

牛客网sql笔试题,请大家帮忙解答

问题:

 

在牛客实习广场有很多公司开放职位给同学们投递,同学投递完就会把简历信息存到数据库里。

现在有简历信息表(resume_info),部分信息简况如下:

第1行表示,在2025年1月2号,C++岗位收到了53封简历

。。。

最后1行表示,在2027年2月6号,C++岗位收到了231封简历

 

请你写出SQL语句查询在2025年投递简历的每个岗位,每一个月内收到简历的数目,和对应的2026年的同一个月同岗位,收到简历的数目,最后的结果先按first_year_mon月份降序,再按job降序排序显示,以上例子查询结果如下:

解析:

第1行表示Python岗位在2025年2月收到了93份简历,在对应的2026年2月收到了846份简历

。。。

最后1行表示C++岗位在2025年1月收到了107份简历,在对应的2026年1月收到了470份简历

 

我的解答:

我解答的运行结果

  • 写回答

1条回答 默认 最新

  • 统计小白er 2023-01-14 11:50
    关注

    你可以看一下这个回答, 脚本如下:

    -- 请你写出SQL语句查询在2025年投递简历的每个岗位,每一个月内收到简历的数目,
    -- 和对应的2026年的同一个月同岗位,收到简历的数目,
    -- 最后的结果先按first_year_mon月份降序,再按job降序排序显示
    
    select t1.job,t1.f_y_m as first_year_mon,t1.f_num as first_year_cnt,
    t2.s_y_m as second_year_mon,t2.s_num as second_year_cnt
    from (
    select job,date_format(date,'%Y-%m') as f_y_m,sum(num) as f_num 
    from resume_info 
    where year(date) = 2025 
    group by job,date_format(date,'%Y-%m')
    )t1 
    left join (
    select job,date_format(date,'%Y-%m') as s_y_m,sum(num) as s_num 
    from resume_info 
    where year(date) = 2026 
    group by job,date_format(date,'%Y-%m')
    )t2 
    on t1.job = t2.job 
    and substr(t1.f_y_m,-2) = substr(t2.s_y_m,-2)
    # and date_format(t1.f_y_m,'%Y') = date_format(t2.s_y_m,'%Y') - 1
    order by first_year_mon desc,t1.job desc 
    ;
    
    评论

报告相同问题?