Repository navigation
Expand file tree
/
Copy pathSQL_Intro.sql
More file actions
84 lines (71 loc) · 1.84 KB
/
Copy pathSQL_Intro.sql
File metadata and controls
84 lines (71 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SELECT * FROM employees;
--
SELECT * FROM employees
WHERE salary > 50000;
--
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC;
--
SELECT COUNT(*) AS total_employees
FROM employees;
--
INSERT INTO employees (first_name, last_name, email, hire_date, salary)
VALUES ('John', 'Smith', 'john.smith@example.com', '2025-01-15', 60000);
--
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
--
SELECT d.department_name, AVG(e.salary) AS average_salary
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name;
--
SELECT first_name, last_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
--
UPDATE employees
SET salary = salary * 1.1
WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'IT');
--
SELECT d.department_name, COUNT(e.employee_id) AS employee_count
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name
HAVING COUNT(e.employee_id) > 5;
--
WITH RankedEmployees AS (
SELECT
e.first_name,
e.last_name,
e.salary,
d.department_name,
DENSE_RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary DESC) AS salary_rank
FROM
employees e
JOIN
departments d ON e.department_id = d.department_id
)
SELECT
first_name,
last_name,
department_name,
salary
FROM
RankedEmployees
WHERE
salary_rank <= 3
ORDER BY
department_name, salary_rank;
--
SELECT
e.first_name AS employee_first_name,
e.last_name AS employee_last_name,
m.first_name AS manager_first_name,
m.last_name AS manager_last_name
FROM
employees e
LEFT JOIN
employees m ON e.manager_id = m.employee_id;