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