【问题标题】:trying to use the count statement to count numerous values for multiple individulas尝试使用 count 语句计算多个个体的数值
【发布时间】:2020-01-08 10:29:23
【问题描述】:

我在一家社区健康中心工作。我试图计算我们每个牙科提供者使用多个服务代码的次数。尝试创建一个返回类似于以下内容的脚本:

provider|code|code|code etc...
---------------------------
name    | #  | #  | #
---------------------------
name    | #  | #  | #
---------------------------
name    | #  | #  | #
---------------------------
etc...  

我已经有一个脚本可以返回我正在寻找的内容,但不是我需要的格式

select pm.description [Provider], p.service_item_id [Code], p.service_item_description [Service], COUNT(pm.description) As Count
from patient_procedure p 
     inner join location_master l on p.location_id = l.location_id 
     inner join provider_master pm on p.provider_id = pm.provider_id
     inner join patient_encounter p2 on p.enc_id = p2.enc_id
where l.location_name like '%dental%'
      and p2.enc_timestamp between '20190101 00:00:00.000' and '20190630 23:59:59.999'
      and p2.billable_ind = y
group by p.service_item_id, p.service_item_description, pm.description
order by p.service_item_description ASCENDING

返回:

Provider| Code| Service| Count

【问题讨论】:

  • 什么数据库? SQL 服务器?请编辑您的问题并添加sql-server 或任何数据库。另外,看起来你想转身。

标签: sql select count


【解决方案1】:

如果您想为每个代码获取不同的计数,可以使用条件COUNT 语句:

SUM(CASE WHEN service_item_id = 1 THEN 1 ELSE 0 END) AS count_id_1

在你的情况下,它看起来像这样:

SELECT 
  pm.description [Provider], 
  p.service_item_id [Code], 
  p.service_item_description [Service], 
  SUM(CASE WHEN p.service_item_id = 1 THEN 1 ELSE 0 END) As Count_id_1,
  SUM(CASE WHEN p.service_item_id = 2 THEN 1 ELSE 0 END) As Count_id_2,
  SUM(CASE WHEN p.service_item_id = 3 THEN 1 ELSE 0 END) As Count_id_3
FROM patient_procedure p 
     INNER JOIN location_master l ON p.location_id = l.location_id 
     INNER JOIN provider_master pm ON p.provider_id = pm.provider_id
     INNER JOIN patient_encounter p2 ON p.enc_id = p2.enc_id
WHERE l.location_name LIKE '%dental%'
     AND p2.enc_timestamp BETWEEN '20190101 00:00:00.000' AND '20190630 23:59:59.999'
     AND p2.billable_ind = y
GROUP BY p.service_item_id, p.service_item_description, pm.description
ORDER BY p.service_item_description ASCENDING

这将为您提供COUNTs,以便您跟踪尽可能多的不同代码。

【讨论】:

  • 谢谢!但看起来使用它变得乏味,因为我们必须继续为我们拥有 100 多个代码的每个代码添加一个 CASE。任何方法都可以让它算作我们拥有的服务项目的数量。类似于 DISTINCT 语句的东西?
  • 嗯...我不确定,也许看看上面 cmets 中 Mark 建议的 PIVOT
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2021-09-17
  • 1970-01-01
  • 2015-10-12
相关资源
最近更新 更多