Welcome to Subscribe On Youtube

3051. Find Candidates for Data Scientist Position

Description

Table: Candidates

+--------------+---------+ 
\| Column Name  \| Type    \| 
+--------------+---------+ 
\| candidate_id \| int     \| 
\| skill        \| varchar \|
+--------------+---------+
(candidate_id, skill) is the primary key (columns with unique values) for this table.
Each row includes candidate_id and skill.

Write a query to find the candidates best suited for a Data Scientist position. The candidate must be proficient in Python, Tableau, and PostgreSQL.

Return the result table ordered by candidate_id in ascending order.

The result format is in the following example.

 

Example 1:

Input: 
Candidates table:
+---------------+--------------+
\| 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 \|
+---------------+--------------+
Output: 
+--------------+
\| candidate_id \|  
+--------------+
\| 123          \|  
\| 147          \| 
+--------------+
Explanation: 
- Candidates 123 and 147 possess the necessary skills in Python, Tableau, and PostgreSQL for the data scientist position.
- Candidates 234 and 102 do not possess any of the required skills for this position.
- Candidate 256 has proficiency in Tableau but is missing skills in Python and PostgreSQL.
The output table is sorted by candidate_id in ascending order.

Solutions

Solution 1: Conditional Filtering + Grouping Statistics

First, we filter out candidates who have the skills Python, Tableau, and PostgreSQL. Then, we group by candidate_id and count the number of skills each candidate has. Finally, we filter out candidates who have these three skills and sort them in ascending order by candidate_id.

  • # Write your MySQL query statement below
    SELECT candidate_id
    FROM Candidates
    WHERE skill IN ('Python', 'Tableau', 'PostgreSQL')
    GROUP BY 1
    HAVING COUNT(1) = 3
    ORDER BY 1;
    
    

All Problems

All Solutions