在两个数字之间使用具有计数的原因,因此我可以在具有计数的子句中使用范围

问题描述

select patientid,illnessid,count(1) as myrange    
from database (nolock)    
where diagnosetime between '2020-08-27' and '2020-08-28'    
group by PJMBatchId,PJMCltId
HAVING COUNT(*) >= 2;
having count (*) >= 5;

所以我想结合我的拥有数,以便它可以在2到5之间计数,有没有办法做到这一点,

解决方法

使用BETWEEN

SELECT patientid,illnessid,COUNT(1) AS myrange
FROM database (nolock)
WHERE diagnosetime BETWEEN '2020-08-27' AND '2020-08-28'
GROUP BY PJMBatchId,PJMCltId
HAVING COUNT(*) BETWEEN 2 AND 5;

如果您不想在hading子句中使用BETWEEN,则可以将两个不等式放在一起:

HAVING COUNT(*) >= 2 AND COUNT(*) <= 5;
,

您可以尝试以下方法:

select patientid,count(1) as myrange    
from database (nolock)    
where diagnosetime between '2020-08-27' and '2020-08-28'        
group by PJMBatchId,PJMCltId
HAVING COUNT(myrange) BETWEEN 2 AND 5;