sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL - Fråga för att beräkna värden från flera tabeller

Du kan använda flera vanliga tabelluttryck, beräkna vart och ett separat och sammanfoga - bara för att du ska förstå vad som händer.

SQL Fiddle

Fråga :

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_Performed

SELECT h.manager_email manager,
  a.Total_audits,
  s.Audits_Performed,
  100 * s.Audits_Performed / a.Total_audits percentage_complete
FROM HR h
LEFT OUTER JOIN aud a
ON h.manager_email = a.manager_email
LEFT OUTER JOIN scores s
ON h.manager_email = s.manager_email
ORDER BY 2 DESC NULLS LAST 

Resultat :

|       MANAGER | TOTAL_AUDITS | AUDITS_PERFORMED | PERCENTAGE_COMPLETE |
|---------------|--------------|------------------|---------------------|
|  [email protected] |           10 |                1 |                  10 |
| [email protected] |            9 |                2 |   22.22222222222222 |
| [email protected] |       (null) |           (null) |              (null) |
|  [email protected] |       (null) |           (null) |              (null) |
| [email protected] |       (null) |           (null) |              (null) |


  1. Hur anropar man en lagrad procedur med ref-markör som utgångsparameter med Spring?

  2. Hur lagrar jag .txt-filer MySQL-databas?

  3. Vad betyder/händer när du använder `INNER JOIN` med flera databastabellsatser?

  4. Databashantering och övervakning för PostgreSQL 12