Data analysts in Gurgaon play pivotal roles encompassing generating insightful reports through statistical methods, setting up data collection systems, and constructing databases. They excel in identifying trends and deciphering intricate patterns within datasets. SQL stands as the predominant language in data analysis, crucial for extracting actionable insights. During interviews for data analytics courses in Gurgaon, proficiency in SQL is heavily emphasized. Here are some frequently posed SQL Query Interview Questions for aspiring Data Analysts.
Data Analyst interview questions and answers for freshers
Consider the following tables
Employee table
employee_id | full_name | manager_id | date_of_joining | city |
121 | Shanaya Gupta | 321 | 1/31/2014 | Bangalore |
321 | Snehil Aggarwal | 986 | 1/30/2015 | Delhi |
Salary table
employee_id | project | salary | variable |
121 | P1 | 8000 | 500 |
321 | P2 | 10000 | 1000 |
421 | P1 | 12000 | 0 |
1. Write a query fetching the available projects from salary table.
Upon looking at the employee salary table, it is observable that every employee has a project value correlated to it. Duplicate values also exist, so a unique clause will be used in this case to get distinct values.
SELECT DISTINCT(project) FROM Salary;
2. Write a query fetching full name and employee ID of workers operating under manager having ID 986
Take a look at the employee details table, here we can fetch employee details working under the manager with ID 986 using a WHERE clause.
SELECT employee_id, full_name FROM Employee WHERE manager_id=986;
3. Write a query to track the employee ID who has a salary ranging between 9000 and 15000
In this case, we will use a WHERE clause, with BETWEEN operator
SELECT employee_id, salary FROM Salary
WHERE salary BETWEEN 9000 and 15000;
4. Write a query for employees that reside in Delhi or work with manager having ID 321
Over here, one of the conditions needs to be satisfied. Either worker operating under Manager with ID 321 or workers residing in Delhi. In this scenario, we will require using OR operator.
SELECT employee_id, city, manager_id FROM Employee
WHERE manager_id='321' OR city='Delhi';
5. Write a query displaying each employee’s net salary added with value of variable
Now we will require using the + operator.
SELECT employee_id, salary+variable AS Net Salary
FROM Salary;
6. Write a query fetching employee IDs available in both tables
We will make use of subquery
SELECT employee_id FROM Employee
WHERE employee_id IN (SELECT employee_id FROM Salary);
7. Write a query fetching the employee’s first name (string before space) from the employee table via full_name column
First, we will require fetching space character’s location from full_name field, then further extracting the first name out of it.
We will use LOCATE in MySQL, then CHARINDEX in SQL server. MID or SUBSTRING method will be utilized for string before space
Via MID (MySQL)
SELECT MID(full_name, 1, LOCATE(' ', full_name))
FROM Employee;
Via SUBSTRING (SQL server)
SELECT SUBSTRING(full_name, 1, CHARINDEX(' ', full_name))
FROM Employee;
8. Write a query fetching the workers who have their hands-on projects except for P1
In this case, NOT operator can be used for fetching rows that do not satisfy the stated condition.
SELECT employee_id FROM Salary
WHERE NOT project = 'P1';
Also, using not equal to operator
SELECT employee_id FROM Salary
WHERE project <> 'P1';
9. Write a query fetching name of employees who have salary equating 5000 or more than that, also equating 10000 or less than that
Over here, BETWEEN will be used in WHERE for returning employee ID of workers whose remuneration satisfies the stated condition, further using it as subquery for getting the employee full name via the table (employee).
SELECT full_name FROM Employee
WHERE employee_id IN
(SELECT employee_id FROM Salary
WHERE salary BETWEEN 5000 AND 10000);
10. Write a query fetching details of the employees who started working in 2020 from employee details table.
For this, we will use BETWEEN for time period ranging 01/01/2020 to 31/12/2020
SELECT * FROM Employee
WHERE date_of_joining BETWEEN '2020/01/01' AND '2020/12/31';
Now the year can be extracted from date_of_joining using YEAR function in MySQL
SELECT * FROM Employee
WHERE YEAR(date_of_joining) = '2020';
11. Write a query fetching salary data and employee names. Display the details even if an employee’s salary record isn’t there.
Here, the interviewer is trying to gauge your knowledge related to SQL JOINS.
Left JOIN will be used here, with Employee table being on the left side of Salary table.
SELECT E.full_name, S.salary
FROM Employee E
LEFT JOIN Salary S
ON E.employee_id = S.employee_id;
Advanced SQL, DBMS interview questions
These SQL interview questions for 6 years of experience can help you in your job application.
12. Write a query for removing duplicates in a table without utilizing the temporary table
Inner join along with delete will be used here. Equality of matching data will be assessed further, the rows with higher employee ID will be discarded.
DELETE E1 FROM Employee E1
INNER JOIN Employee E2
WHERE E1.employee_id > E2.employee_id
AND E1.full_name = E2.full_name
AND E1.manager_id = E2.manager_id
AND E1.date_of_joining = E2.date_of_joining
AND E1.city = E2.city;
13. Write a query fetching just the even rows in the Salary table
If there’s an auto-increment field, for instance, employee_id, then the below-mentioned query can be used.
SELECT * FROM Salary
WHERE MOD(employee_id,2) = 0;
If the above-stated field is absent (auto-increment field), then these queries can be used. Verifying the remainder is 0 when divided with 2, and by using ROW_NUMBER (in SQL server)
SELECT E.employee_id, E.project, E.salary
FROM (
SELECT *, ROW_NUMBER()
OVER(ORDER BY employee_id) AS RowNumber
FROM Salary
) E
WHERE E.RowNumber % 2 = 0;
Using variable (user-defined) in MySQL
SELECT *
FROM (
SELECT *, @rowNumber := @rowNumber+1 RowNo
FROM Salary
JOIN(SELECT @rowNumber := 0) r
) t
WHERE RowNo % 2 = 0;
14. Write a query fetching duplicate data from Employee table without referring to employee_id (primary key)
In this case, on all the fields, we will use GROUP BY, further HAVING clause will be used for returning duplicate data that has more than one count.
SELECT full_name, manager_id, date_of_joining, city, COUNT(*)
FROM Employee
GROUP BY full_name, manager_id, date_of_joining, city
HAVING COUNT(*) > 1;
15. Write a query creating the same structured empty table as any other
Over here, false WHERE condition will be used.
CREATE TABLE NewTable
SELECT * FROM Salary WHERE 1=0;
The above mentioned are some of the most common SQL data analyst interview questions to prepare for entry-level, intermediate and advanced level jobs.