SQL-如何计算案例中的唯一性?
我正在数出院处方的数量。情况如下: 每个处方都有几个顺序,因此仅使用计数就可以多次出现处方号。为了计算处方号(不是医嘱),我使用了distinct,这样每个处方号都会被计算一次。我只需要计算出院处方,所以我设置了另一个条件:优先级,如“%discharge%”。 虽然这是不正确的工作 我正在使用此查询,但它不断返回1,这是不正确的:SQL-如何计算案例中的唯一性?,sql,count,case,distinct,Sql,Count,Case,Distinct,我正在数出院处方的数量。情况如下: 每个处方都有几个顺序,因此仅使用计数就可以多次出现处方号。为了计算处方号(不是医嘱),我使用了distinct,这样每个处方号都会被计算一次。我只需要计算出院处方,所以我设置了另一个条件:优先级,如“%discharge%”。 虽然这是不正确的工作 我正在使用此查询,但它不断返回1,这是不正确的: SELECT Count (distinct (case when (PrescNo is not null)
SELECT
Count (distinct
(case when
(PrescNo is not null)
and (Priority like '% discharge%')
then 1 else null end)) as "Discharge Prescription"
FROM Order_DIS
where PrescNo is not null
and ADM_Type='In Patient'
表包含以下列:
- (处方号)作为处方号
- (优先权)作为优先权
- (OrderItem)作为订单
- (ADM_类型)作为入院类型
1
的不同值,并且该值不能超过1
。您需要计算可以区分的内容,例如pressno
:
SELECT COUNT(DISTINCT case when Priority like '% discharge%' then PrescoNo end)
) as Discharge_Prescription
FROM Order_DIS
WHERE PrescNo is not null AND ADM_Type = 'In Patient';
查询也有点复杂。如果这是较大查询的一部分,则可能需要案例
逻辑。但对于你的问题,这更简单:
SELECT COUNT(DISTINCT PrescoNo) as Discharge_Prescription
FROM Order_DIS
WHERE PrescNo LIKE '% discharge%' AND ADM_Type = 'In Patient';
此外,如果没有重复PrescoNo
,那么简单的计数(*)
就足够了,没有明显的:
SELECT COUNT(*) as Discharge_Prescription
FROM Order_DIS
WHERE PrescNo LIKE '% discharge%' AND ADM_Type = 'In Patient';
公布样本数据和预期结果以澄清。