Skip to content

Improved task 3482 #1987

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 30, 2025
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ repositories {
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:[5.12.2,)'
testImplementation 'org.hamcrest:hamcrest-core:[3.0,)'
testImplementation 'org.zapodot:embedded-db-junit-jupiter:2.2.0'
testImplementation 'org.zapodot:embedded-db-junit-jupiter:2.2.2'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:[1.12.2,)'
}

Expand Down
2 changes: 1 addition & 1 deletion pom-central.xml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-db-junit-jupiter</artifactId>
<version>2.2.0</version>
<version>2.2.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
2 changes: 1 addition & 1 deletion pom-central21.xml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-db-junit-jupiter</artifactId>
<version>2.2.0</version>
<version>2.2.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-db-junit-jupiter</artifactId>
<version>2.2.0</version>
<version>2.2.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,43 +1,62 @@
# Write your MySQL query statement below
# #Hard #Database #2025_03_11_Time_712_ms_(100.00%)_Space_0.0_MB_(100.00%)
with recursive org_hierarchy(orig_employee_id, orig_employee_name, employee_id, employee_name, manager_id, salary, org_level) as
(
select employee_id as orig_employee_id,
employee_name as orig_employee_name,
# #Hard #Database #2025_05_30_Time_294_ms_(80.03%)_Space_0.0_MB_(100.00%)
WITH RECURSIVE org_hierarchy (
orig_employee_id,
orig_employee_name,
employee_id,
employee_name,
manager_id,
salary,
1 as org_level
from Employees
org_level
) AS (
SELECT
employee_id AS orig_employee_id,
employee_name AS orig_employee_name,
employee_id,
employee_name,
manager_id,
salary,
1 AS org_level
FROM Employees

UNION ALL
select P.orig_employee_id,
P.orig_employee_name,
CH.employee_id,
CH.employee_name,
CH.manager_id,
CH.salary,
P.org_level + 1
from org_hierarchy P, Employees CH
where ch.manager_id = P.employee_id

SELECT
P.orig_employee_id,
P.orig_employee_name,
CH.employee_id,
CH.employee_name,
CH.manager_id,
CH.salary,
P.org_level + 1
FROM org_hierarchy P
JOIN Employees CH ON CH.manager_id = P.employee_id
),
CEO_hierarchy as (
select org_hierarchy.employee_id as SUB_employee_id,
org_hierarchy.employee_name,
org_hierarchy.org_level as sub_level
from org_hierarchy, Employees
where org_hierarchy.orig_employee_id = Employees.employee_id
and Employees.manager_id is null
CEO_hierarchy (
sub_employee_id,
employee_name,
sub_level
) AS (
SELECT
oh.employee_id AS sub_employee_id,
oh.employee_name,
oh.org_level AS sub_level
FROM org_hierarchy oh
JOIN Employees e ON oh.orig_employee_id = e.employee_id
WHERE e.manager_id IS NULL
)
select
org_hierarchy.ORIG_EMPLOYEE_ID as employee_id,
org_hierarchy.ORIG_EMPLOYEE_name as employee_name,
CEO_hierarchy.sub_level as "level",
count(*) - 1 as team_size,
sum(org_hierarchy.salary) as budget
from org_hierarchy, CEO_hierarchy
where org_hierarchy.ORIG_EMPLOYEE_ID = CEO_hierarchy.SUB_employee_id
group by org_hierarchy.ORIG_EMPLOYEE_ID,
org_hierarchy.ORIG_EMPLOYEE_name,
CEO_hierarchy.sub_level
order by 3 asc, 5 desc, 2

SELECT
oh.orig_employee_id AS employee_id,
oh.orig_employee_name AS employee_name,
ch.sub_level AS level,
COUNT(*) - 1 AS team_size,
SUM(oh.salary) AS budget
FROM org_hierarchy oh
JOIN CEO_hierarchy ch ON oh.orig_employee_id = ch.sub_employee_id
GROUP BY
oh.orig_employee_id,
oh.orig_employee_name,
ch.sub_level
ORDER BY
level ASC, budget DESC, employee_name ASC;