SQL每日一题(20210722)
SQL每日一题(20211018)
SQL每日一题(20211117)
WITH recursive DP AS (SELECT *, ID AS TOPID
FROM 部门表
WHERE 父ID = 1
UNION ALL
SELECT D.*, DP.TOPID AS TOPID
FROM 部门表 AS D
JOIN DP AS DP ON DP.ID = D.父ID),
EP AS (SELECT 部门, COUNT(1) AS E_COUNT FROM 职工表 GROUP BY 部门)
SELECT 部门, D_COUNT AS 人数
FROM (SELECT TOPID, SUM(E_COUNT) AS D_COUNT
FROM DP AS D
JOIN EP AS E ON E.部门 = D.部门
GROUP BY TOPID) AS T
JOIN 部门表 AS D ON D.ID = T.TOPID