Sql 将普通查询转换为花式或分区/覆盖查询

Sql 将普通查询转换为花式或分区/覆盖查询,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我的问题是: with cte as ( select client_id,COUNT(patient_id) PatientCount from ( select client_id,patient_id from F_ACCESSION_DAILY group by CLIENT_ID,PATIENT_ID having COUNT(ACCESSION_ID)=2

我的问题是:

with cte as (
        select client_id,COUNT(patient_id) PatientCount from
        (
            select client_id,patient_id
            from F_ACCESSION_DAILY
            group by CLIENT_ID,PATIENT_ID
            having COUNT(ACCESSION_ID)=2
        ) a
        group by CLIENT_ID
)
工作,但对我没什么用处。因为虽然我可以很容易地加入这个查询,但实际上我需要用语句多次重复这个
,因为我需要能够区分:

having count(Accession_id)=2

以此类推,直到100岁左右

我想做一些更像这样的事情:

select distinct client_id, patient_id, count(*) over (partition by client_id, patient_id,accession_id) patientcount
    from f_accession_daily
但是我被卡住了

我想知道您是否可以为我指出一个正确的方向,如何将初始查询转换为当count(Accession)=许多不同的值时更有用的

非常感谢您的指导。

类似于

   select client_id,accessioncount,COUNT(patient_id) PatientCount from 
    ( 
        select client_id,patient_id, count(accession_id) as accessioncount
        from F_ACCESSION_DAILY 
        group by CLIENT_ID,PATIENT_ID 
    ) a 
    group by CLIENT_ID,accessioncount

   select client_id,accessioncount,COUNT(patient_id) PatientCount from 
    ( 
        select client_id,patient_id, count(accession_id) as accessioncount
        from F_ACCESSION_DAILY 
        group by CLIENT_ID,PATIENT_ID 
    ) a 
    group by CLIENT_ID,accessioncount

你能添加一些样本数据和期望的输出吗?你能添加一些样本数据和期望的输出吗。
   select client_id,accessioncount,COUNT(patient_id) PatientCount from 
    ( 
        select client_id,patient_id, count(accession_id) as accessioncount
        from F_ACCESSION_DAILY 
        group by CLIENT_ID,PATIENT_ID 
    ) a 
    group by CLIENT_ID,accessioncount