首页 > 试题广场 >

实习广场投递简历分析(二)

[编程题]实习广场投递简历分析(二)
  • 热度指数:61828 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在牛客实习广场有很多公司开放职位给同学们投递,同学投递完就会把简历信息存到数据库里。
现在有简历信息表(resume_info),部分信息简况如下:
id job date num
1 C++ 2025-01-02 53
2 Python 2025-01-02
23
3 Java 2025-01-02
12
4 C++ 2025-01-03
54
5 Python
2025-01-03
43
6 Java
2025-01-03
41
7 Java
2025-02-03
24
8 C++
2025-02-03
23
9 Python
2025-02-03 34
10 Java
2025-02-04
42
11
C++
2025-02-04
45
12 Python
2025-02-04
59
13
Python
2025-03-04
54
14 C++
2025-03-04
65
15 Java
2025-03-04
92
16 Python
2025-03-05
34
17 C++
2025-03-05
34
18 Java
2025-03-05
34
19 Python
2026-01-04
230
20 C++
2026-02-06 231
第1行表示,在2025年1月2号,C++岗位收到了53封简历
。。。
最后1行表示,在2026年2月6号,C++岗位收到了231封简历

请你写出SQL语句查询在2025年内投递简历的每个岗位,每一个月内收到简历的数量,并且按先按月份降序排序,再按简历数目降序排序,以上例子查询结果如下:
job mon cnt
Java 2025-03 126
C++ 2025-03 99
Python 2025-03
88
Python 2025-02 93
C++
2025-02
68
Java
2025-02 66
C++
2025-01 107
Python
2025-01 66
Java
2025-01 53
示例1

输入

drop table if exists resume_info;
CREATE TABLE resume_info (
id int(4) NOT NULL,
job varchar(64) NOT NULL,
date date NOT NULL,
num int(11) NOT NULL,
PRIMARY KEY (id));

INSERT INTO resume_info VALUES
(1,'C++','2025-01-02',53),
(2,'Python','2025-01-02',23),
(3,'Java','2025-01-02',12),
(4,'C++','2025-01-03',54),
(5,'Python','2025-01-03',43),
(6,'Java','2025-01-03',41),
(7,'Java','2025-02-03',24),
(8,'C++','2025-02-03',23),
(9,'Python','2025-02-03',34),
(10,'Java','2025-02-04',42),
(11,'C++','2025-02-04',45),
(12,'Python','2025-02-04',59),
(13,'Python','2025-03-04',54),
(14,'C++','2025-03-04',65),
(15,'Java','2025-03-04',92),
(16,'Python','2025-03-05',34),
(17,'C++','2025-03-05',34),
(18,'Java','2025-03-05',34),
(19,'Python','2026-01-04',230),
(20,'C++','2026-02-06',231);

输出

Java|2025-03|126
C++|2025-03|99
Python|2025-03|88
Python|2025-02|93
C++|2025-02|68
Java|2025-02|66
C++|2025-01|107
Python|2025-01|66
Java|2025-01|53
select job,date_format(date,'%Y-%m') mon,sum(num) cnt
from resume_info
where year(date)='2025'
group by job,mon
order by mon desc,cnt desc;

发表于 2024-11-12 14:46:56 回复(0)
select job,month,sum(num) cnt
from (
        select job,date_format(date,"%Y-%m") as month,
        num
        from resume_info 
        where year(date) =2025
) as t
group by job,month
order by month desc,cnt desc

发表于 2024-10-22 19:32:19 回复(0)
日期部分 用提取函数比用转换的函数更简单

SELECT
    job,
    LEFT ( date, 7 ) AS mon,
    sum( num ) AS cnt 
FROM
    resume_info 
WHERE
    YEAR ( date ) = "2025" 
GROUP BY
    mon,
    job 
ORDER BY
    mon DESC,
    cnt DESC
发表于 2024-09-06 10:40:48 回复(0)

注意月份信息的提取即可

select job, left(date, 7) as mon, sum(num) as cnt
from resume_info
where 
date >= '2025-01-01' and date < '2026-01-01'
group by left(date, 7), job
order by left(date, 7) desc, sum(num) desc
发表于 2024-08-14 17:07:02 回复(0)
select job,
date_format(date,'%Y-%m') as mon,
sum(num) as cnt
from resume_info
where year(date) = 2025
group by job, mon
order by mon desc, cnt desc;

发表于 2024-07-29 21:07:02 回复(0)
select
    job,
    date_format(date,'%Y-%m') mon,
    sum(num) cnt 
from resume_info
where year(date)=2025
group by mon,job
order by mon desc, cnt desc;
发表于 2024-06-10 08:54:17 回复(0)
SELECT
    job,
    DATE_FORMAT(date, '%Y-%m') AS mon,
    sum(num) AS cnt
FROM resume_info
WHERE date BETWEEN '2025-01-01' AND '2025-12-31'
GROUP BY job, mon
ORDER BY mon DESC, cnt DESC;

发表于 2024-04-22 22:32:19 回复(0)
select job,date_format(date,'%Y-%m') as mon,sum(num) as cnt
from resume_info
where year(date) = '2025'
group by job,mon
order by mon desc,cnt desc;

编辑于 2024-04-12 09:34:29 回复(0)
select job,left(date,7) mon,sum(num) cnt from resume_info
where date like '2025-%'
group by job,mon
order by mon desc,cnt desc;

编辑于 2024-02-07 14:05:25 回复(0)
select job,DATE_FORMAT(date, '%Y-%m') mon, sum(num) cnt
from resume_info
where year(date)='2025'
group by job,DATE_FORMAT(date, '%Y-%m')
order by mon desc,cnt desc

编辑于 2024-01-02 15:42:05 回复(0)

select
    job,
    substr(date,1,7) as mon,
    sum(num) as cnt
from resume_info
where date between '2025-01-01' and '2025-12-31'
group by job,
    substr(date,1,7)
order by substr(date,1,7) desc, sum(num) desc

so easy
发表于 2023-11-26 20:23:05 回复(0)
select
    job,
    left (date, 7) as mon,
    sum(num) as cnt
from
    resume_info
where
    date >= "2025-01-01"
    and date <= "2025-12-31"
group by
    job,
    mon
order by
    mon desc,
    cnt desc;

发表于 2023-11-14 21:10:24 回复(0)
# 请你写出SQL语句查询在2025年内投递简历的每个岗位,每一个月内收到简历的数量,并且按先按月份降序排序,再按简历数目降序排序,以上例子查询结果如下:

# 注意月份格式
select 
job,
date_format(date,'%Y-%m') mon_,
sum(num) job_num
from resume_info
where year(date) =2025
group by job,date_format(date,'%Y-%m') 
order by 2 desc ,3 desc
;

发表于 2023-09-28 11:04:31 回复(0)
select job,date_format(date,'%Y-%m') dt,sum(num) cnt
from resume_info
where year(date)=2025
group by job,dt
order by dt desc,cnt desc

发表于 2023-06-11 15:24:07 回复(0)
一个不注意,大写的M既然是英文了
select
    job
    ,date_format(date,'%Y-%m') as mon
    ,sum(num) as cnt
from 
    resume_info
where
    year(date) = 2025
group by
    job
    ,mon
order by 
    mon desc,
    cnt desc

发表于 2023-05-26 15:23:34 回复(0)
select job,left(date,7) as mon,sum(num) as cnt   
from resume_info
where year(date) = '2025'
group by job,mon
order by left(date,7)  desc,cnt desc
-- 运用字符串切割,只留下年份和月份 个人认为这样比较简单
发表于 2023-02-20 16:24:58 回复(1)
select job,left(date,7) as mon,sum(num) as cnt
from resume_info
where date>='2025-01-01' and date<='2025-12-31'
group by job,left(date,7)
order by mon desc,cnt desc;

发表于 2022-12-31 13:56:47 回复(0)
select job,date_format(date,'%Y-%m') as mon,sum(num) as cnt
from resume_info
where date_format(date,'%Y-%m') = 2025
group by job,mon
order by mon desc,cnt desc;

发表于 2022-11-02 08:20:09 回复(0)
select job,left(date,7) as mon ,sum(num) as cnt from resume_info
where date >= "2025-01-01" and date <= "2025-12-31"
group by job,mon
order by mon desc,cnt desc;
发表于 2022-08-14 00:04:51 回复(0)