我使用Postgres 9.1
来计算给定时间段内唯一的患者就诊次数,使用为每个患者输入的发票。
我有两列,分别是transactions.ptnumber
和transactions.dateofservice
,可以按以下方式计算患者的就诊量:
select count(*)
from transactions
where transactions.dateofservice between '2012-01-01' and '2013-12-31'
问题是,有时一个病人可能会得到两张同一天的发票,但这应该算作只有一个病人就诊。
如果我在
SELECT DISTINCT
栏上使用GROUP BY
或transactions.ptnumber
,这将计算就诊的患者数量(而不是就诊次数)。如果我在
SELECT DISTINCT
列上使用GROUP BY
或transactions.dateofservice
,这将计算有发票的天数。不知道该怎么做。
最佳答案
这将返回独特的病人每天。
select count(distinct transactions.ptnumber) as cnt
from transactions
where transactions.dateofservice between '2012-01-01' and '2013-12-31'
group by transactions.dateofservice
你可以把它们加起来,得到整个时期唯一的病人
select sum(cnt) from (
select count(distinct transactions.ptnumber) as cnt
from transactions
where transactions.dateofservice between '2012-01-01' and '2013-12-31'
group by transactions.dateofservice
)
关于sql - SQL中的唯一访问次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25528230/