私は保険金請求表を持っています。それはIDを持っています、患者が持っている条件、ClaimID、EmergencyDepartmentFlag(1 - ED; 0 - NonED)条件ごとのクレーム数と条件ごとのED訪問の回数を与える結果を得る必要がありますSQL同じ条件で同じテーブルに参加してカウントを取得
+----------+-----------+----------+--------+
| 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
は、このクエリは、正しい結果を返しません。
?私には 'COUNT'と' SUM'という単純な集計*のようです。 –
@ PM77-1あなたは正しいです – shockwave