3051. 寻找数据科学家职位的候选人 🔒
题目描述
表:Candidates
+--------------+---------+ | Column Name | Type | +--------------+---------+ | candidate_id | int | | skill | varchar | +--------------+---------+ (candidate_id, skill) 是这张表的主键(有不同值的列)。 每一行包括 candidate_id 和 skill。
编写一个查询来找到最适合数据科学家职位的 候选人。应聘者必须精通 Python,Tableau 和 PostgreSQL。
返回结果表,以 candidate_id
升序 排序。
结果格式如下所示。
示例 1:
输入: Candidates 表: +---------------+--------------+ | candidate_id | skill | +---------------+--------------+ | 123 | Python | | 234 | R | | 123 | Tableau | | 123 | PostgreSQL | | 234 | PowerBI | | 234 | SQL Server | | 147 | Python | | 147 | Tableau | | 147 | Java | | 147 | PostgreSQL | | 256 | Tableau | | 102 | DataAnalysis | +---------------+--------------+ 输出: +--------------+ | candidate_id | +--------------+ | 123 | | 147 | +--------------+ 解释: - 候选人 123 和 147 具备数据科学家职位必要的 Python,Tableau 和 PostgreSQL 技能。 - 候选人 234 和 102 不具备该职位所需的任何技能。 - 候选人 256 精通 Tableau 但没有掌握 Python 和 PostgreSQL。 输出表以 candidate_id 升序排序。
解法
方法一:条件筛选 + 分组统计
我们首先筛选出具备 Python
, Tableau
, PostgreSQL
这三个技能的候选人,然后按照 candidate_id
进行分组统计,统计每个候选人具备的技能数量,最后筛选出具备这三个技能的候选人,并且按照 candidate_id
进行升序排序。
1 2 3 4 5 6 7 |
|