在SQL中求和的联合计算值

时间:2017-06-16 17:18:24

标签: sql postgresql join left-join

我有两个SELECT语句,我想总结一下。两个查询都运行正常,但我无法对总计的输出求和。我尝试按照此question进行操作,但无法通过将查询包装在select id, sum(amount) from ( )

中来进行SUM
SELECT "patient_profiles"."id", count(distinct recommendations.id) AS total
FROM "patient_profiles" 
  LEFT OUTER JOIN 
  "recommendations" ON "recommendations"."patient_profile_id" = "patient_profiles"."id" 
GROUP BY "patient_profiles"."id"

UNION

SELECT "patient_profiles"."id", count(distinct patient_profile_potential_doctors.id) AS total
FROM "patient_profiles" 
  LEFT OUTER JOIN "patient_profile_potential_doctors" ON "patient_profile_potential_doctors"."patient_profile_id" = "patient_profiles"."id"       
GROUP BY "patient_profiles"."id"

1 个答案:

答案 0 :(得分:2)

    Select ID, sum(Total) from  
      (
        SELECT "patient_profiles"."id" [ID], count(distinct recommendations.id) AS total
        FROM "patient_profiles" 
          LEFT OUTER JOIN 
          "recommendations" ON "recommendations"."patient_profile_id" = "patient_profiles"."id" 
        GROUP BY "patient_profiles"."id"

        UNION

        SELECT "patient_profiles"."id" [ID], count(distinct patient_profile_potential_doctors.id) AS total
        FROM "patient_profiles" 
          LEFT OUTER JOIN "patient_profile_potential_doctors" ON "patient_profile_potential_doctors"."patient_profile_id" = "patient_profiles"."id"       
        GROUP BY "patient_profiles"."id"
) x
    group by ID