0% found this document useful (0 votes)
18 views27 pages

SQL Queries

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
18 views27 pages

SQL Queries

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 27

PRACTICING

SQL QUERIES
CREATE DATABASE PRACTICE;

AND UPLOAD ALL THE TABLES


1. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHOSE SALARY IS HIGHER THAN
9000. RETURN FIRST NAME, LAST NAME AND DEPARTMENT NUMBER AND SALARY

select * from employee_hr_data

select
first_name,last_name,department_id
from employee_hr_data where salary
>9000
2 WRITE A SQL QUERY TO IDENTIFY EMPLOYEES WHO DO NOT HAVE A DEPARTMENT
NUMBER. RETURN EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER,
HIRE_DATE, JOB_ID, SALARY,COMMISSION_PCT, MANAGER_ID AND
DEPARTMENT_ID

SELECT
EMPLOYEE_ID,FIRST_NAME,LAST
_NAME,EMAIL, PHONE_NUMBER,
HIRE_DATE,
JOB_ID,SALARY,COMMISSION_
PCT, MANAGER_ID ,
DEPARTMENT_ID
FROM EMPLOYEE_HR_DATA
WHERE DEPARTMENT_ID =' ';
3. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHOSE FIRST NAME DOES NOT
CONTAIN THE LETTER ‘T’. SORT THE RESULT-SET IN ASCENDING ORDER BY
DEPARTMENT ID. RETURN FULL NAME (FIRST AND LAST NAME TOGETHER),
HIRE_DATE, SALARY AND DEPARTMENT_ID.

SELECT
CONCAT(FIRST_NAME,LAST_N
AME) AS
FULL_NAME,HIRE_DATE,SALAR
Y,DEPARTMENT_ID FROM
EMPLOYEE_HR_DATA WHERE
FIRST_NAME NOT LIKE '%T%'
ORDER BY DEPARTMENT_ID;
4. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO EARN BETWEEN 9000 AND
12000 (BEGIN AND END VALUES ARE INCLUDED.) AND GET SOME COMMISSION.
RETURN ALL FIELDS

SELECT * FROM
EMPLOYEE_HR_DATA
WHERE SALARY >=9000
AND SALARY <=12000 AND
COMMISSION_PCT>0 ;
5. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO DO NOT EARN ANY
COMMISSION. RETURN FULL NAME (FIRST AND LAST NAME), AND SALARY

SELECT
CONCAT(TRIM(FIRST_NAME)
,TRIM(LAST_NAME)) AS
FULL_NAME ,SALARY FROM
EMPLOYEE_HR_DATA WHERE
COMMISSION_PCT=0;
6. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO WORK UNDER A MANAGER.
RETURN FULL NAME (FIRST AND LAST NAME), SALARY, AND MANAGER ID

SELECT
CONCAT(FIRST_NAME,LAST
_NAME) AS
FULL_NAME,SALARY ,
MANAGER_ID FROM
EMPLOYEE_HR_DATA WHERE
MANAGER_ID !=0;
7. WRITE A SQL QUERY TO FIND EMPLOYEES WHOSE FIRST NAMES CONTAIN THE
LETTERS F, T, OR M. SORT THE RESULT-SET IN DESCENDING ORDER BY SALARY. RETURN
ALL FIELDS

SELECT * FROM
EMPLOYEE_HR_DATA WHERE
FIRST_NAME LIKE '%F%' OR
FIRST_NAME LIKE'%T%' OR
FIRST_NAME LIKE'%M%' ORDER
BY SALARY DESC;
8. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO EARN ABOVE 12000 OR THE
SEVENTH CHARACTER IN THEIR PHONE NUMBER IS 3. SORT THE RESULT-SET IN DESCENDING
ORDER BY FIRST NAME. RETURN FULL NAME (FIRST NAME AND LAST NAME), HIRE DATE,
COMMISSION PERCENTAGE, EMAIL, AND TELEPHONE SEPARATED BY '-', AND SALARY

SELECT
CONCAT(FIRST_NAME,LAST_NAME) AS
FULL_NAME,HIRE_DATE,COMMISSION_P
CT,EMAIL,SALARY,PHONE_NUMBER FROM
EMPLOYEE_HR_DATA WHERE
SALARY>12000 OR PHONE_NUMBER LIKE
'%_______3%' ORDER BY FIRST_NAME
DESC;
9. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHOSE FIRST NAME CONTAINS A
CHARACTER 'S' IN THE THIRD POSITION. RETURN FIRST NAME, LAST NAME AND
DEPARTMENT ID.

SELECT
FIRST_NAME,LAST_NAME,
DEPARTMENT_ID FROM
EMPLOYEE_HR_DATA
WHERE FIRST_NAME LIKE
'%S%';
10. WRITE A SQL QUERY TO COUNT THE NUMBER OF EMPLOYEES, THE SUM
OF ALL SALARY, AND DIFFERENCE BETWEEN THE HIGHEST SALARY AND
LOWEST SALARIES BY EACH JOB ID. RETURN JOB_ID,COUNT, SUM,
SALARY_DIFFERENCE

SELECT
JOB_ID,COUNT(EMPLOYEE_I
D) AS EMP , SUM(SALARY) AS
SAL, MAX(SALARY) -
MIN(SALARY) AS DIFF FROM
EMPLOYEE_HR_DATA GROUP
BY JOB_ID ;
11. WRITE A SQL QUERY TO FIND EACH JOB IDS WHERE TWO OR MORE EMPLOYEES
WORKED FOR MORE THAN 300 DAYS. RETURN JOB ID

SELECT
JOB_ID
FROM
EMPLOYEE_HR_DATA
GROUP BY
JOB_ID
HAVING
COUNT(CASE WHEN
DATEDIFF(CURDATE(), HIRE_DATE)
> 300 THEN 1 END) >= 2;
12. WRITE A SQL QUERY TO COUNT THE NUMBER OF EMPLOYEES WORKED
UNDER EACH MANAGER. RETURN MANAGER ID AND NUMBER OF EMPLOYEES

SELECT
MANAGER_ID,COUNT(EM
PLOYEE_ID) AS COUNTEMP
FROM
EMPLOYEE_HR_DATA
GROUP BY MANAGER_ID;
13. WRITE A SQL QUERY TO CALCULATE THE AVERAGE SALARY OF EMPLOYEES WHO
RECEIVE A COMMISSION PERCENTAGE FOR EACH DEPARTMENT. RETURN
DEPARTMENT ID, AVERAGE SALARY.

SELECT
DEPARTMENT_ID,AVG(SALAR
Y) FROM
EMPLOYEE_HR_DATA WHERE
COMMISSION_PCT !=0
GROUP BY DEPARTMENT_ID ;
14. WRITE A SQL QUERY TO FIND THE DEPARTMENTS WHERE MORE THAN TEN
EMPLOYEES RECEIVE COMMISSIONS. RETURN DEPARTMENT ID

SELECT DEPARTMENT_ID FROM


EMPLOYEE_HR_DATA WHERE
COMMISSION_PCT !=0 GROUP BY
DEPARTMENT_ID HAVING
COUNT(*)>10;
15. WRITE A SQL QUERY TO FIND THOSE JOB TITLES WHERE MAXIMUM SALARY
FALLS BETWEEN 10000 AND 15000 (BEGIN AND END VALUES ARE INCLUDED.).
RETURN JOB_TITLE, MAX_SALARYMIN_SALARY

SELECT JOB_ID,
MAX(SALARY),MIN(SALARY)
FROM EMPLOYEE_HR_DATA
GROUP BY JOB_ID HAVING
MAX(SALARY) BETWEEN 10000
AND 15000;
16. WRITE A SQL QUERY TO FIND DETAILS OF THOSE JOBS WHERE THE MINIMUM
SALARY EXCEEDS 9000. RETURN ALL THE FIELDS OF JOBS

SELECT JOB_ID , MIN(SALARY)


FROM EMPLOYEE_HR_DATA
GROUP BY JOB_ID HAVING
MIN(SALARY)>9000;
17. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO WORK IN THE SAME
DEPARTMENT AS ‘CLARA’. EXCLUDE ALL THOSE RECORDS WHERE FIRST NAME IS
‘CLARA’. RETURN FIRST NAME, LAST NAME AND HIRE DATE.

set @a = (select department_id from


employee_hr_data where first_name like
'%Clara%')

select @a

select first_name , last_name ,hire_date


from employee_hr_data where
department_id = @a
18. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHO EARN MORE THAN
THE AVERAGE SALARY AND WORK IN THE SAME DEPARTMENT AS AN EMPLOYEE
WHOSE FIRST NAME CONTAINS THE LETTER 'J'. RETURN EMPLOYEE ID, FIRST
NAME AND SALARY

WITH CTE AS (
SELECT DEPARTMENT_ID
FROM EMPLOYEE_HR_DATA
WHERE FIRST_NAME LIKE '%J%'
),
CTE1 AS (
SELECT DEPARTMENT_ID ,EMPLOYEE_ID, FIRST_NAME,
SALARY
FROM EMPLOYEE_HR_DATA
WHERE SALARY > (SELECT AVG(SALARY) FROM
EMPLOYEE_HR_DATA)
)
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY FROM CTE1
JOIN CTE ON CTE1.DEPARTMENT_ID =
CTE.DEPARTMENT_ID;
19. WRITE A QUERY TO DISPLAY THE EMPLOYEE ID, NAME ( FIRST NAME AND LAST
NAME ) AND THE JOB ID COLUMN WITH A MODIFIED TITLE SALESMAN FOR THOSE
EMPLOYEES WHOSE JOB TITLE IS ST_MAN AND DEVELOPER FOR WHOSE JOB TITLE
IS IT_PROG

SELECT
EMPLOYEE_ID,
CONCAT(FIRST_NAME, ' ', LAST_NAME) AS
NAME,
CASE
WHEN TRIM(JOB_ID) = 'ST_MAN' THEN
'SALESMAN'
WHEN TRIM(JOB_ID) = 'IT_PROG' THEN
'DEVELOPER'
ELSE JOB_ID -- KEEPS THE ORIGINAL
JOB_ID IF IT DOESN'T MATCH THE SPECIFIED
VALUES
END AS JOB_TITLE
FROM
EMPLOYEE_HR_DATA;
-- JOINS
1. WRITE A SQL QUERY TO FIND THE FIRST NAME, LAST NAME, DEPARTMENT, CITY, AND
STATE PROVINCE FOR EACH EMPLOYEE

SELECT
FIRST_NAME,LAST_NAME,D.DEPA
RTMENT_NAME,CITY,STATE_PRO
VINCE FROM
EMPLOYEE_HR_DATA E JOIN
DEPARTMENT_HR_DATA D ON
E.DEPARTMENT_ID =
D.DEPARTMENT_ID
JOIN LOCATION_HR_DATA L ON
L.LOCATION_ID =
D.LOCATION_ID ;
2. WRITE A SQL QUERY TO FIND THOSE EMPLOYEES WHOSE FIRST NAME
CONTAINS THE LETTER ‘Z’. RETURN FIRST NAME, LAST NAME, DEPARTMENT, CITY,
AND STATE PROVINCE

SELECT
FIRST_NAME,LAST_NAME,D.DEPART
MENT_NAME,CITY,STATE_PROVINC
E FROM EMPLOYEE_HR_DATA E
JOIN DEPARTMENT_HR_DATA D ON
E.DEPARTMENT_ID =
D.DEPARTMENT_ID
JOIN LOCATION_HR_DATA L ON
L.LOCATION_ID = D.LOCATION_ID
WHERE FIRST_NAME LIKE '%Z%' ;
3. WRITE A SQL QUERY TO FIND ALL EMPLOYEES WHO JOINED ON 1ST JANUARY 1993
AND LEFT ON OR BEFORE 31 AUGUST 1997. RETURN JOB TITLE, DEPARTMENT NAME,
EMPLOYEE NAME, AND JOINING DATE OF THE JOB

SELECT
J.JOB_TITLE,
D.DEPARTMENT_NAME,
CONCAT(E.FIRST_NAME, ' ',
E.LAST_NAME) AS FULL_NAME,
J.START_DATE
FROM
EMPLOYEE_HR_DATA E
JOIN
JOB_HISTORY_HR_DATA J ON
E.EMPLOYEE_ID = J.EMPLOYEE_ID
JOIN
DEPARTMENT_HR_DATA D ON
J.DEPARTMENT_ID = D.DEPARTMENT_ID;
4. WRITE A SQL QUERY TO FIND THE DEPARTMENT NAME AND THE FULL NAME
(FIRST AND LAST NAME) OF THE MANAGER DEPARTMENT_HR_DATA

SELECT
DISTINCT(CONCAT(E.FIRST_NAME ,
E.LAST_NAME)),DEPARTMENT_NAME
FROM EMPLOYEE_HR_DATA E JOIN
EMPLOYEE_HR_DATA E1 ON
E.EMPLOYEE_ID = E1.MANAGER_ID JOIN
DEPARTMENT_HR_DATA D ON
D.DEPARTMENT_ID = E.DEPARTMENT_ID
;
5. WRITE A SQL QUERY TO FIND THE DEPARTMENT NAME, FULL NAME (FIRST AND
LAST NAME) OF THE
-- MANAGER AND THEIR CITY

SELECT DISTINCT(CONCAT(E.FIRST_NAME ,
E.LAST_NAME)),DEPARTMENT_NAME,CITY
FROM EMPLOYEE_HR_DATA E JOIN
EMPLOYEE_HR_DATA E1 ON E.EMPLOYEE_ID =
E1.MANAGER_ID JOIN DEPARTMENT_HR_DATA
D ON D.DEPARTMENT_ID = E.DEPARTMENT_ID
JOIN LOCATION_HR_DATA L ON
L.LOCATION_ID = D.LOCATION_ID ;

You might also like