100% found this document useful (1 vote)
4K views

SQL Fundamentals I Solutions 04

The document provides examples of SQL queries to analyze employee salary data from an Oracle database. It includes queries using aggregate functions like MAX, MIN, SUM, and AVG to find highest, lowest, total, and average salaries across all employees or grouped by job type. Other queries count the number of employees with the same job, number of managers, or difference between highest and lowest salary. More advanced queries filter results, perform conditional sums, or display salary data in a matrix format by department.

Uploaded by

megadrive007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
4K views

SQL Fundamentals I Solutions 04

The document provides examples of SQL queries to analyze employee salary data from an Oracle database. It includes queries using aggregate functions like MAX, MIN, SUM, and AVG to find highest, lowest, total, and average salaries across all employees or grouped by job type. Other queries count the number of employees with the same job, number of managers, or difference between highest and lowest salary. More advanced queries filter results, perform conditional sums, or display salary data in a matrix format by department.

Uploaded by

megadrive007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Practice 4: Solutions Determine the validity of the following three statements. Circle either True or False. 1.

Group functions work across many rows to produce one result per group. True/False 2. Group functions include nulls in calculations. True/False 3. The WHERE clause restricts rows before inclusion in a group calculation. True/False The HR department needs the following reports: 4. Find the highest, lowest, sum, and average salary of all employees. Label the columns Maximum, Minimum, Sum, and Average, respectively. Round your results to the nearest whole number. Place your SQL statement in a text file named lab_04_04.sql.
SELECTROUND(MAX(salary),0)"Maximum", ROUND(MIN(salary),0)"Minimum", ROUND(SUM(salary),0)"Sum", ROUND(AVG(salary),0)"Average" FROMemployees;

5. Modify the query in lab_04_04.sql to display the minimum, maximum, sum, and average salary for each job type. Resave lab_04_04.sql as lab_04_05.sql. Run the statement in lab_04_05.sql.
SELECTjob_id,ROUND(MAX(salary),0)"Maximum", ROUND(MIN(salary),0)"Minimum", ROUND(SUM(salary),0)"Sum", ROUND(AVG(salary),0)"Average" FROMemployees GROUPBYjob_id;

6. Write a query to display the number of people with the same job.
SELECTjob_id,COUNT(*) FROMemployees GROUPBYjob_id;

Generalize the query so that the user in the HR department is prompted for a job title. Save the script to a file named lab_04_06.sql.
SELECTjob_id,COUNT(*) FROMemployees WHEREjob_id='&job_title' GROUPBYjob_id;

Oracle Database 10g: SQL Fundamentals I A - 12

Practice 4: Solutions (continued) 7. Determine the number of managers without listing them. Label the column Numberof Managers. Hint: Use the MANAGER_ID column to determine the number of managers.
SELECTCOUNT(DISTINCTmanager_id)"NumberofManagers" FROMemployees;

8. Find the difference between the highest and lowest salaries. Label the column DIFFERENCE.
SELECTMAX(salary)-MIN(salary)DIFFERENCE FROMemployees;

If you have time, complete the following exercises: 9. Create a report to display the manager number and the salary of the lowest-paid employee for that manager. Exclude anyone whose manager is not known. Exclude any groups where the minimum salary is $6,000 or less. Sort the output in descending order of salary.
SELECTmanager_id,MIN(salary) FROMemployees WHEREmanager_idISNOTNULL GROUPBYmanager_id HAVINGMIN(salary)>6000 ORDERBYMIN(salary)DESC;

If you want an extra challenge, complete the following exercises: 10. Create a query that will display the total number of employees and, of that total, the number of employees hired in 1995, 1996, 1997, and 1998. Create appropriate column headings.
SELECTCOUNT(*)total, SUM(DECODE(TO_CHAR(hire_date,'YYYY'),1995,1,0))"1995", SUM(DECODE(TO_CHAR(hire_date,'YYYY'),1996,1,0))"1996", SUM(DECODE(TO_CHAR(hire_date,'YYYY'),1997,1,0))"1997", SUM(DECODE(TO_CHAR(hire_date,'YYYY'),1998,1,0))"1998" FROMemployees;

Oracle Database 10g: SQL Fundamentals I A - 13

Practice 4: Solutions (continued) 11. Create a matrix query to display the job, the salary for that job based on department number, and the total salary for that job, for departments 20, 50, 80, and 90, giving each column an appropriate heading.
SELECTjob_id"Job", SUM(DECODE(department_id,20,salary))"Dept20", SUM(DECODE(department_id,50,salary))"Dept50", SUM(DECODE(department_id,80,salary))"Dept80", SUM(DECODE(department_id,90,salary))"Dept90", SUM(salary)"Total" FROMemployees GROUPBYjob_id;

Oracle Database 10g: SQL Fundamentals I A - 14

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy