Comment ajouter une colonne supplémentaire à la même table tout en conservant la clause group by
P粉729436537
P粉729436537 2024-04-01 10:43:59
0
1
381

Liste des colonnes dans le tableau 1 : Plan_ID, Claim_id, Patient_id, B_OR_G

Liste des colonnes dans le tableau 2 : Ojid, Shapland

select distinct a.Plan_ID
       , a.Total_Claims
       , Total_Patients
       ,  b.PERIOD
       , b.ORGID,a.B_OR_G
FROM (Select distinct Plan_ID
             , count(distinct Claim_id) as Total_Claims
             , count(distinct Patient_id)  as Total_Patients 
      from table1 group by 1) a
JOIN (select *
             , row_number() over (partition by ORGID,SHAPLANID order by PROCESSINGDATE desc) as rank
      from table2 qualify rank = 1) b
ON LTRIM(a.PLAN_ID, '0') = b.SHAPLANID

Dans la requête ci-dessus, je souhaite extraire une colonne supplémentaire nommée "B_or_G" de la table1 (c'est-à-dire a) sans interférer avec la clause group by car cela est nécessaire selon nos exigences.

Y a-t-il une meilleure façon de procéder ? Merci! !

P粉729436537
P粉729436537

répondre à tous(1)
P粉447785031

Je pense que vous pouvez utiliser ANY_VALUE(B_or_G)

Par exemple :

select distinct a.Plan_ID
       , a.Total_Claims
       , Total_Patients
       ,  b.PERIOD
       , b.ORGID,a.B_OR_G
FROM (Select distinct Plan_ID
             , count(distinct Claim_id) as Total_Claims
             , count(distinct Patient_id)  as Total_Patients 
             , ANY_VALUE(B_OR_G)
      from table1 group by 1) a
JOIN (select *
             , row_number() over (partition by ORGID,SHAPLANID order by PROCESSINGDATE desc) as rank
      from table2 qualify rank = 1) b
ON LTRIM(a.PLAN_ID, '0') = b.SHAPLANID
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal