View difference between Paste ID: ujUgdYLH and Pr3JsQqJ
SHOW: | | - or go back to the newest paste.
1
Use HR;
2
3
CREATE TABLE orders (order_id INTEGER PRIMARY KEY,
4
					 employee_id INTEGER FOREIGN KEY REFERENCES employees (employee_id),
5
					 order_details VARCHAR(300));
6
7
ALTER TABLE orders ADD order_date datetime;
8
9
select * from employees;
10
11
drop table orders;
12
13
UPDATE employees SET salary = 1000 WHERE salary < 900;
14
15
SELECT COUNT(*) FROM employees WHERE salary > (SELECT MAX(salary) FROM employees WHERE department_id = 60);
16
17
WITH tab (count1, employee_id) AS (SELECT COUNT(*), employee_id FROM job_history GROUP BY employee_id HAVING COUNT(*) >= 2) SELECT e.last_name FROM employees e, tab t WHERE t.employee_id = e.employee_id;
18
19
SELECT COUNT(*) FROM employees WHERE employee_id NOT IN (SELECT manager_id FROM employees WHERE manager_id IS NOT NULL);
20
21
SELECT COUNT(*), department_id FROM employees GROUP BY department_id HAVING COUNT(*) > 20;
22
23-
SELECT e.first_name, e.last_name,j.job_title, d.department_name FROM employees e, jobs j, departments d WHERE e.job_id = j.job_id AND e.department_id = d.department_id AND (e.department_id IS NULL OR e.manager_id IS NULL);
23+
SELECT e.first_name, e.last_name, j.job_title, d.department_name FROM employees e LEFT OUTER JOIN jobs AS j ON e.job_id = j.job_id LEFT OUTER JOIN departments AS d ON e.department_id  = d.department_id WHERE (e.department_id IS NULL OR e.manager_id IS NULL);
24
25
26
27
WITH  tab1 (department_id, count1, job_id) AS (SELECT department_id, COUNT(*), job_id FROM employees GROUP BY department_id, job_id), tab2 (last_name, rank1) AS (SELECT last_name, rank() over(PARTITION BY department_id, job_id ORDER BY hire_date, salary) FROM employees WHERE department_id IN (SELECT department_id FROM tab1 WHERE count1 > 1 AND department_id IS NOT NULL) AND job_id IN (SELECT job_id FROM tab1 WHERE count1 > 1 AND department_id IS NOT NULL)) SELECT last_name FROM tab2 WHERE rank1 = 1;