以下のクレームデータがあります。私は特定の年齢層、性別、健康状態に基づいてクレームの数を見つける必要があります。私は結果テーブルに年齢グループごとにTotalClaimsを追加する方法があるかどうかを判断しようとしています。今、私は Sum(d.totalclaims)
を以下のクエリに追加しました。条件と性別に基づいてフィルタリングされ、年齢グループではないため、間違っています。 3つの条件(年齢、条件、性別)に基づいてクレームを取得する方法。任意のアイデア/提案、してください!3列に基づいてデータをフィルタリングするSQL集計関数
SELECT c.condition,
a.gender,
Sum(CASE WHEN a.age BETWEEN 40 AND 50 THEN 1 END) AS Members_40_50_years,
Sum(d.totalclaims)
FROM (SELECT DISTINCT id, gender, age FROM agetable) AS a
INNER JOIN (SELECT DISTINCT id, condition
FROM conditiontable) AS c
ON a.id = c.id
INNER JOIN (SELECT Count(DISTINCT claimid) AS TotalClaims, id
FROM claimstable group by id) d
ON d.id = a.id
GROUP BY gender,
condition
年齢表
+----+--------+-----+
| ID | Gender | Age |
+----+--------+-----+
| 1 | M | 45 |
| 2 | F | 60 |
+----+--------+-----+
条件表
+----+--------------+
| ID | Condition |
+----+--------------+
| 1 | HeartFailure |
| 1 | Diabetes |
| 2 | Diabetes |
+----+--------------+
請求表
+----+---------+
| ID | ClaimID |
+----+---------+
| 1 | A11 |
| 1 | 345 |
| 1 | A32 |
| 2 | 542 |
| 2 | 675 |
+----+---------+
ここで期待される結果は何ですか?また、サンプルデータをDDLで**消耗品**形式で掲載できますか?ありがとう。 – Larnu