【发布时间】:2017-12-28 15:47:56
【问题描述】:
我有一张保险索赔表。它有 ID、患者的条件、ClaimID、EmergencyDepartmentFlag(1 - ED; 0 - NonED。我需要得到结果,它给我每个条件的索赔计数和每个条件的 ED 就诊次数
+----------+-----------+----------+--------+
| MemberID | Condition | ClaimID | EDFlag |
+----------+-----------+----------+--------+
| A123 | COPD | 34124434 | 1 |
| A526 | COPD | 34580304 | 0 |
| A693 | COPD | 23723642 | 1 |
| A645 | DM | 46534633 | 1 |
+----------+-----------+----------+--------+
预期输出
+-----------+-------------+----------+
| Condition | TotalClaims | EDClaims |
+-----------+-------------+----------+
| COPD | 3 | 2 |
| DM | 1 | 1 |
+-----------+-------------+----------+
查询
SELECT condition,
Count(a1.claimid) AS TotalClaims,
Count(a2.claimid) AS EDClaims
FROM (SELECT memberid,
condition,
claimid
FROM mytable) a1
INNER JOIN (SELECT memberid,
condition,
claimid
FROM mytable
WHERE edflag = 1) a2
ON a1.memberid = A2.memberid
GROUP BY condition
这个查询没有返回正确的结果。
【问题讨论】:
-
你为什么需要
JOIN?对我来说,这似乎是一个简单的聚合,带有COUNT和SUM。 -
@PM77-1 你是对的
标签: sql sql-server join inner-join