Можете да използвате множество общи таблични изрази, като изчислявате всеки поотделно и обединявате - само за да разберете какво се случва.
Запитване :
WITH aud(manager_email,Total_audits) AS (SELECT manager_email, SUM ( CASE WHEN audit_eligible ='Y' THEN audits_required END ) FROM REQUIRED_AUDITS GROUP BY manager_email), --Total_audits scores(manager_email,Audits_Performed) AS (SELECT manager_email, COUNT (ID) FROM SCORE_ENTRY s GROUP BY manager_email ) --Audits_PerformedSELECT h.manager_email мениджър, a.Total_audits, s.Audits_Performed, 100 * s.Audits_Performed / a.Total_audits percentage_completeFROM HR hLEFT OUTER JOIN aud aON h.manager_email =.manager_emailLEFT OUTER JOIN резултати sON h.manager_email =s.manager_emailORDER BY 2 DESC NULLS LAST
<предварителен код>| УПРАВИТЕЛ | TOTAL_AUDITS | ОДИТИ_ИЗВЪРШЕНИ | PERCENTAGE_COMPLETE ||---------------|--------------|---------------- --|--------------------|| [email protected]
| 10 | 1 | 10 || [email protected]
| 9 | 2 | 22.22222222222222 || [email protected]
| (нула) | (нула) | (нула) || [email protected]
| (нула) | (нула) | (нула) || [email protected]
| (нула) | (нула) | (null) |