首页 > 解决方案 > 使用 PROC SQL 计数独特的患者和整体观察

问题描述

在 SAS 中工作,但使用一些 SQL 代码来计算唯一患者的数量以及一组指标的观察总数。每条记录都有一个患者标识符、患者所在的设施,以及每个病床部分(患者所在医院的特定位置)的一组二进制指标 (0,1)。对于每个患者记录,只有 1 个病床部分的值可以为“1”。总体而言,患者可以在一个病床区或其他病床区进行多次观察,即患者可以住院 > 1。我们的想法是滚动按设施设置的数据,并计算每个病床区的入院总数,以及每个床位的总人数。人数将始终 <= 观察人数。计数人员刚刚添加到我的待办事项列表中,到目前为止,我只是使用以下代码总结每个床部分的观察结果:proc sql; 创建表fac_bedsect作为选择设施,sum(bedsect_alc)作为bedsect_alc,sum(bedsect_blind)作为bedect_blind,sum(bedsect_gen)作为bedect_gen从bedect_type按设施分组;退出;

有没有一种方法可以将每个床部分的唯一人数 # 合并到此代码中?谢谢。

标签: sasproc-sql

解决方案


在不了解源表的情况下,不可能准确回答,但计算不同值的语法如下所示。您需要在我使用“patient_id”的地方使用正确的列名:

SELECT
    facility
  , COUNT(DISTINCT patient_id) AS patient_count
  , SUM(bedsect_alc)           AS bedsect_alc
  , SUM(bedsect_blind)         AS bedsect_blind
  , SUM(bedsect_gen)           AS bedsect_gen
FROM bedsect_type
GROUP BY
    facility
;

推荐阅读