Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

SQL Challenges-1: Department wise number of male and female employees and their total salaries

SQL Challenges-1: Exercise-56 with Solution

From the following table write a SQL query to find the number of male and female employees in each department and along with their total salaries. Return department ID, number of female employees, their total salaries, number of male employees and their total salaries.

Input:

Table: employees

Structure:

FieldTypeNullKeyDefaultExtra
emp_idintNOPRI
emp_namevarchar(30)YES
emp_sexvarchar(1)YES
emp_salaryintYES
emp_departmentintYES

Data:

emp_idemp_nameemp_sexemp_salary emp_department
100StevenM2400090
101NeenaF1700090
102LexM1700080
103AlexanderM900060
104BruceM600060
105DavidM480080
106ValliF480060
107DianaF420060
108NancyM12000100
109DanielF9000100
110JohnM8200100
111IsmaelM7700100
112Jose ManuelM7800100
113LuisF6900100
114DenM1100030
115AlexanderM310030
116ShelliF290030
117SigalF280030
133JasonM330050
134MichaelF290050
135KiF240050

Sample Solution:

SQL Code(MySQL):

create table employees (
emp_id integer(4) not null unique,
emp_name varchar(30),
emp_sex varchar(1),
emp_salary int(6),
emp_department int(3));



insert into employees values(100,'Steven     ','M',24000,  90);
insert into employees values(101,'Neena      ','F',17000,  90);
insert into employees values(102,'Lex        ','M',17000,  80);
insert into employees values(103,'Alexander  ','M', 9000,  60);
insert into employees values(104,'Bruce      ','M', 6000,  60);
insert into employees values(105,'David      ','M', 4800,  80);
insert into employees values(106,'Valli      ','F', 4800,  60);
insert into employees values(107,'Diana      ','F', 4200,  60);
insert into employees values(114,'Den        ','M',11000,  30);
insert into employees values(115,'Alexander  ','M', 3100,  30);
insert into employees values(116,'Shelli     ','F', 2900,  30);
insert into employees values(117,'Sigal      ','F', 2800,  30);
insert into employees values(108,'Nancy      ','M',12000, 100);
insert into employees values(109,'Daniel     ','F', 9000, 100);
insert into employees values(110,'John       ','M', 8200, 100);
insert into employees values(111,'Ismael     ','M', 7700, 100);
insert into employees values(112,'Jose Manuel','M', 7800, 100);
insert into employees values(113,'Luis       ','F', 6900, 100);
insert into employees values(133,'Jason      ','M', 3300,  50);
insert into employees values(134,'Michael    ','F', 2900,  50);
insert into employees values(135,'Ki         ','F', 2400,  50);



SELECT  emp_department AS department,
SUM(CASE WHEN emp_sex='F' THEN 1 END) AS female_employees,
SUM(CASE WHEN emp_sex='F' THEN emp_salary END) AS female_total_salary,
SUM(CASE WHEN emp_sex='M' THEN 1 END) AS male_employees,
SUM(CASE WHEN emp_sex='M' THEN emp_salary END) AS male_total_salary
FROM employees
group BY 1;

Sample Output:

department|female_employees|female_total_salary|male_employees|male_total_salary|
----------+----------------+-------------------+--------------+-----------------+
        90|               1|              17000|             1|            24000|
        80|                |                   |             2|            21800|
        60|               2|               9000|             2|            15000|
       100|               2|              15900|             4|            35700|
        30|               2|               5700|             2|            14100|
        50|               2|               5300|             1|             3300|

SQL Code Editor:


Contribute your code and comments through Disqus.

Previous: Find the minimum order amount sold by each salesperson.
Next: Find the employees in department Administration who solved the cases for all quarters are more than 1200.



SQL: Tips of the Day

SQL Server SELECT into existing table.

INSERT INTO dbo.TABLETWO
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

This assumes there's only two columns in dbo.TABLETWO - you need to specify the columns otherwise:

INSERT INTO dbo.TABLETWO
  (col1, col2)
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

Database: SQL Server

Ref: https://bit.ly/3y6tpA3