sql - 如何使用满足特定条件的总和来创建输出
问题描述
我有一张表medicalclaims
,其中包含几列感兴趣的列:patient_id
、vendor
、claim_id
、diagnosis_code
、procedure_code
和state
。
简而言之,我想提取 的总数patient_id
和 的总数claim_id
,但我也想检查某些diagnosis_code
、procedure_code
和的总数state
。例如,我希望我的输出列看起来像这样:
vender | count(distinct patient_id) | count (distinct claim_id) | procedure_code = E123 | state = CA
目前,我正在使用此查询供应商、患者 ID 计数和声明 ID 计数:
SELECT distinct vendor, count (distinct patient_id) AS Patients, count (distinct claim_id) AS Claims
FROM medicalclaims
GROUP BY 1
ORDER BY 1
但是,我不确定如何构建剩余的列来捕获特定diagnosis_code
的procedure_code
、 和state
感兴趣的值。我想提取 CA 或 NY 患者的总数以及特定诊断代码或过程代码的总和。所以基本上在输出中添加看起来像这样的列:
SELECT count(distinct patient_id)
FROM medicalclaims
WHERE state = 'CA'
和
SELECT count(distinct patient_id)
FROM medicalclaims
WHERE procedure_code = 'xyz'
解决方案
我想你想要:
SELECT vendor, count(distinct patient_id) AS Patients,
count(distinct claim_id) AS Claims,
sum(case when procedure_code = 'xyz' then 1 else 0 end) as procedure_xyz,
sum(case when state = 'xyz' then 1 else 0 end) as state_ca
FROM medicalclaims
GROUP BY 1
ORDER BY 1
推荐阅读
- java - Cucumber\Java:使用可选单词和参数定义一个步骤
- python - 如何在scrapy中定义递归抓取网站链接的规则?
- android - 滚动后未正确应用聊天 2 不同持有者的 FirebaseUI 回收器视图
- google-sheets - 水平填充其他工作表中的公式
- jmeter - 如何使用 Jmeter 从 JSON 响应中删除字符 ��?
- python-3.x - 如何找到具有此属性的所有元素?
- regex - bundleId 的正则表达式,末尾带有可选的通配符 (*)
- php - 为 spatie/phpunit-watcher 的执行选择 php 版本
- python - CNN:检查输入时出错:预期密集有 2 个维度,但得到了形状为 (391、605、700、3) 的数组
- laravel - Laravel 数据迁移到新结构