SQL实现数据分类及实验室末次报告间隔天数计算问询
问题解决记录与原提问
问题已解决
我在Tableau中创建了名为Lab Volume的计算字段,计算代码如下:
If [Average Results Per Day] <= 25 THEN 'Low' ELSEIF [Average Results Per Day] > 25 and [Average Results Per Day] < 75 THEN 'Medium' ELSEIF [Average Results Per Day] >= 75 THEN 'High' END
感谢各位的帮助!
原提问
我在创建数据新分类、汇总分类数据及计算实验室末次报告间隔天数时遇到困难。现有字段包括唯一的patientIDs、Lab_Name、result_reported_date,我认为这些是项目所需的仅有的变量,最终SQL代码将用于Tableau数据可视化。
需求说明
(1) 计算各实验室Lab_Name在过去30天内的日均报告样本量,再按日均样本量分为三类:
- 低容量:日均<25样本
- 中容量:日均25-50样本
- 高容量:日均≥75样本
输入数据示例
(包含多实验室多日期的提交样本量汇总,共750个实验室,数据回溯30+天)
| Lab_Name | Date | Samples_Submitted |
|---|---|---|
| LabA | 1/01/22 | 80 |
| LabB | 1/01/22 | 22 |
| LabA | 1/02/22 | 101 |
| LabB | 1/01/22 | 12 |
| LabA | 1/03/22 | 95 |
| LabB | 1/03/22 | 80 |
期望输出示例
| Lab_Name | Vol_category | Average_sample_per30day |
|---|---|---|
| LabA | low | 22 |
| LabB | medium | 35 |
| LabC | high | 85 |
| LabD | low | 15 |
| LabE | medium | 32 |
现有SQL代码
我已编写按Lab_Name统计提交样本量的SQL代码,但不知如何计算过去30天的日均样本量并划分低、中、高容量分类:
select Lab_Name, count(Lab_Name) as Lab_count from dbo.Lab_tests where result_reported_date > '2022-07-01' and Test_LOINC in ('41458-1', '94306-8', '94309-2', '94500-6', '94502-2', '94531-1', '94533-7', '94534-5', '94559-2', '94565-9', '94568-9', '94640-0', '94756-4', '94757-2', '94759-8', '94760-6', '94845-5', '95406-5', '95409-9', '95423-0', '95425-5', '95608-6', '96094-8', '96123-5', '96448-6', '96986-5', '99999-9', '94558-4', '95209-3', '96119-3', '97097-0') group by Lab_Name order by Lab_count desc ;
内容的提问来源于stack exchange,提问作者Moosetracks28
相关产品推荐
相关产品推荐

