SQL Challenges-1: Employees resolve highest number of cases in all quarters
SQL Challenges-1: Exercise-74 with Solution
From the following table write a SQL query find the employee who resolve the highest number of cases in all quarters. Return employee name and total number of cases resolved.
Table: employees
Structure:
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
emp_id | int | NO | PRI | ||
emp_name | varchar(30) | YES | |||
emp_sex | varchar(1) | YES | |||
depart_name | varchar(25) | YES | |||
emp_salary | int | YES | |||
qtr1 | int | YES | |||
qtr2 | int | YES | |||
qtr3 | int | YES | |||
qtr4 | int | YES | |||
emp_department | int | YES |
Data:
emp_id | emp_name | emp_sex | depart_name | emp_salary | qtr1 | qtr2 | qtr3 | qtr4 | emp_department |
---|---|---|---|---|---|---|---|---|---|
100 | Steven | M | Production | 24000 | 240 | 310 | 275 | 300 | 90 |
101 | Neena | F | Production | 17000 | 270 | 300 | 275 | 290 | 90 |
102 | Lex | M | Audit | 17000 | 300 | 290 | 285 | 310 | 80 |
103 | Alexander | M | Marketing | 9000 | 25 | 270 | 260 | 280 | 60 |
104 | Bruce | M | Marketing | 6000 | 300 | 280 | 275 | 290 | 60 |
105 | David | M | Audit | 4800 | 200 | 220 | 250 | 270 | 80 |
106 | Valli | F | Marketing | 4800 | 300 | 320 | 330 | 350 | 60 |
107 | Diana | F | Marketing | 4200 | 280 | 270 | 310 | 320 | 60 |
108 | Nancy | M | Administration | 12000 | 260 | 280 | 300 | 310 | 100 |
109 | Daniel | F | Administration | 9000 | 220 | 210 | 240 | 260 | 100 |
110 | John | M | Administration | 8200 | 300 | 290 | 280 | 320 | 100 |
111 | Ismael | M | Administration | 7700 | 280 | 300 | 270 | 310 | 100 |
112 | Jose Manuel | M | Administration | 7800 | 250 | 280 | 260 | 300 | 100 |
113 | Luis | F | Administration | 6900 | 300 | 280 | 270 | 310 | 100 |
114 | Den | M | Sales | 11000 | 280 | 290 | 300 | 320 | 30 |
115 | Alexander | M | Sales | 3100 | 310 | 300 | 320 | 340 | 30 |
116 | Shelli | F | Sales | 2900 | 245 | 260 | 280 | 300 | 30 |
117 | Sigal | F | Sales | 2800 | 250 | 370 | 290 | 320 | 30 |
133 | Jason | M | Export | 3300 | 280 | 270 | 300 | 290 | 50 |
134 | Michael | F | Export | 2900 | 260 | 280 | 290 | 300 | 50 |
135 | Ki | F | Export | 2400 | 240 | 260 | 270 | 290 | 50 |
Sample Solution:
SQL Code(MySQL):
create table employees (
emp_id integer(4) not null unique,
emp_name varchar(30),
emp_sex varchar(1),
depart_name varchar(25),
emp_salary int(6),
qtr1 int(4),
qtr2 int(4),
qtr3 int(4),
qtr4 int(4),
emp_department int(3));
insert into employees values(100,'Steven ','M','Production',24000,240,310,275,300, 90);
insert into employees values(101,'Neena ','F','Production',17000,270,300,275,290, 90);
insert into employees values(102,'Lex ','M','Audit',17000,300,290,285,310, 80);
insert into employees values(103,'Alexander ','M','Marketing', 9000,25,270,260,280, 60);
insert into employees values(104,'Bruce ','M','Marketing', 6000,300,280,275,290, 60);
insert into employees values(105,'David ','M','Audit', 4800,200,220,250,270, 80);
insert into employees values(106,'Valli ','F','Marketing', 4800,300,320,330,350, 60);
insert into employees values(107,'Diana ','F','Marketing', 4200,280,270,310,320, 60);
insert into employees values(114,'Den ','M','Sales',11000,280,290,300,320 , 30);
insert into employees values(115,'Alexander ','M','Sales', 3100,310,300,320,340, 30);
insert into employees values(116,'Shelli ','F','Sales', 2900,245,260,280,300, 30);
insert into employees values(117,'Sigal ','F','Sales', 2800,250,370,290,320, 30);
insert into employees values(108,'Nancy ','M','Administration',12000,260,280,300,310, 100);
insert into employees values(109,'Daniel ','F','Administration', 9000,220,210,240,260, 100);
insert into employees values(110,'John ','M','Administration', 8200,300,290,280,320, 100);
insert into employees values(111,'Ismael ','M','Administration', 7700,280,300,270,310, 100);
insert into employees values(112,'Jose Manuel','M','Administration', 7800,250,280,260,300, 100);
insert into employees values(113,'Luis ','F','Administration', 6900,300,280,270,310, 100);
insert into employees values(133,'Jason ','M','Export', 3300,280,270,300,290, 50);
insert into employees values(134,'Michael ','F','Export', 2900,260,280,290,300, 50);
insert into employees values(135,'Ki ','F','Export', 2400,240,260,270,290, 50);
SELECT emp_name, (qtr1+qtr2+qtr3+qtr4) AS "Target achieved in all Qtrs."
FROM employees e
WHERE (e.qtr1+e.qtr2+e.qtr3+e.qtr4) = (
SELECT MAX((qtr1+qtr2+qtr3+qtr4)) FROM employees e2
);
Sample Output:
emp_name |Target achieved in all Qtrs.| -----------+----------------------------+ Valli | 1300|
SQL Code Editor:
Contribute your code and comments through Disqus.
Previous: Find salespersons who not yet made any sale transaction.
Next: Department where highest salaried employee(s) are working.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/sql-exercises/challenges-1/sql-challenges-1-exercise-74.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics