· 7 years ago · Jan 19, 2019, 02:54 AM
1# The following data definition defines an organizations employee hierarchy.
2
3# An employee is a manager if any other employee has their managerId set to the first employees id. An employee who is a manager may or may not also have a manager.
4# Write a query that selects the names of employees who are not managers.
5
6
7# Mojito
8# # Cherry
9# # # Sunrise
10# # # Aqua Marine
11# # Pinky
12# # # Mango Pulp
13# # Sea Weed
14# # # Rose Water
15# # # # Skyline
16# # # # Anamnisar
17# # # # Copper
18# # # Harmonic
19# # # Cool Brown
20
21
22-- DROP TABLE IF EXISTS employees;
23-- CREATE TABLE employees (
24-- id INTEGER NOT NULL PRIMARY KEY,
25-- managerId INTEGER REFERENCES employees(id),
26-- name VARCHAR(30) NOT NULL
27-- );
28--
29-- INSERT INTO employees(id, managerId, name) VALUES(1, NULL, 'Mojito');
30-- INSERT INTO employees(id, managerId, name) VALUES(2, 1, 'Cherry');
31-- INSERT INTO employees(id, managerId, name) VALUES(3, 1, 'Pinky');
32-- INSERT INTO employees(id, managerId, name) VALUES(4, 1, 'Sea Weed');
33-- INSERT INTO employees(id, managerId, name) VALUES(5, 2, 'Sunrise');
34-- INSERT INTO employees(id, managerId, name) VALUES(6, 2, 'Aqua Marine');
35-- INSERT INTO employees(id, managerId, name) VALUES(7, 3, 'Mango Pulp');
36-- INSERT INTO employees(id, managerId, name) VALUES(8, 4, 'Rose Water');
37-- INSERT INTO employees(id, managerId, name) VALUES(9, 4, 'Harmonic');
38-- INSERT INTO employees(id, managerId, name) VALUES(10, 4, 'Cool Brown');
39-- INSERT INTO employees(id, managerId, name) VALUES(11, 8, 'Skyline');
40-- INSERT INTO employees(id, managerId, name) VALUES(12, 8, 'Anamnisar');
41-- INSERT INTO employees(id, managerId, name) VALUES(13, 8, 'Copper');
42
43SELECT parent.name FROM employees AS parent WHERE (SELECT COUNT(*) FROM employees AS child WHERE child.managerId = parent.id) = 0