Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions TASK_1.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
CREATE TABLE departments (
emp_id INT PRIMARY KEY,
dept_name VARCHAR(50),
dept_id INT
);
INSERT INTO departments (emp_id, dept_name, dept_id) VALUES
(17679, 'Operations', 13),
(26650, 'Marketing', 14),
(30840, 'Operations', 13),
(49823, 'Technology', 12),
(51821, 'Operations', 13),
(67323, 'Marketing', 14),
(71119, 'Administrative', 11),
(76589, 'Operations', 13),
(97927, 'Technology', 12);
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary INT,
job_title VARCHAR(100),
gender VARCHAR(10),
hire_date DATE
);
INSERT INTO employees (emp_id, first_name, last_name, salary, job_title, gender, hire_date) VALUES
(17679, 'Robert', 'Gilmore', 110000, 'Operations Director', 'Male', '2018-09-04'),
(26650, 'Elvis', 'Ritter', 86000, 'Sales Manager', 'Male', '2017-11-24'),
(30840, 'David', 'Barrow', 85000, 'Data Scientist', 'Male', '2019-12-02'),
(49714, 'Hugo', 'Forester', 55000, 'IT Support Specialist', 'Male', '2019-11-22'),
(51821, 'Linda', 'Foster', 95000, 'Data Scientist', 'Female', '2019-04-29'),
(67323, 'Lisa', 'Wiener', 75000, 'Business Analyst', 'Female', '2018-08-09'),
(70950, 'Rodney', 'Weaver', 87000, 'Project Manager', 'Male', '2018-12-20'),
(71329, 'Gayle', 'Meyer', 77000, 'HR Manager', 'Female', '2019-06-28'),
(76589, 'Jason', 'Christian', 99000, 'Project Manager', 'Male', '2019-01-21'),
(97927, 'Billie', 'Lanning', 67000, 'Web Developer', 'Female', '2018-06-25');

-- 1. Find the employees who get paid more than Rodney Weaver.
SELECT first_name, last_name, salary
FROM employees
WHERE salary > (
SELECT salary FROM employees WHERE first_name = 'Rodney' AND last_name = 'Weaver'
);

-- 2. Find the average, min and max salaries.
SELECT AVG(salary) AS avg_salary, MIN(salary) AS min_salary, MAX(salary) AS max_salary
FROM employees;

-- 3. Find the employees whose salary is more than 87000. Our query should return first name, last name, and salary info of the employees.
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 87000;

-- 4. Find the employees (first name, last name from employees table) who work under the Operations department (departments table). Our query should return first name and last name info.
SELECT e.first_name, e.last_name
FROM employees e
JOIN departments d ON e.emp_id = d.emp_id
WHERE d.dept_name = 'Operations';

-- 5. Find the employees (first name, last name from employees table) who work under the Technology department (departments table). Our query should return first name and last name info.
SELECT e.first_name, e.last_name
FROM employees e
JOIN departments d ON e.emp_id = d.emp_id
WHERE d.dept_name = 'Technology';

-- 6. Find the average salary of female employees.
SELECT AVG(salary) AS avg_salary_female
FROM employees
WHERE gender = 'Female';

-- 7. Find the average salaries of each department.
SELECT d.dept_name, AVG(e.salary) AS avg_salary
FROM employees e
JOIN departments d ON e.emp_id = d.emp_id
GROUP BY d.dept_name;

-- 8. Find the oldest and newest employees.
-- Oldest employee
SELECT first_name, last_name, hire_date
FROM employees
ORDER BY hire_date ASC
LIMIT 1;

-- Newest employee
SELECT first_name, last_name, hire_date
FROM employees
ORDER BY hire_date DESC
LIMIT 1;

-- 9. Find the hiring date and department of the highest paid employee.
SELECT e.hire_date, d.dept_name
FROM employees e
JOIN departments d ON e.emp_id = d.emp_id
WHERE e.salary = (SELECT MAX(salary) FROM employees);

-- 10. Find the hiring date and department of the lowest paid employee.
SELECT e.hire_date, d.dept_name
FROM employees e
JOIN departments d ON e.emp_id = d.emp_id
WHERE e.salary = (SELECT MIN(salary) FROM employees);