首页 > 解决方案 > 在 Postgres 转换中需要帮助

问题描述

大家好,我正在尝试将以下脚本从 MS SQL 转换为 PostgreSQL,但无法转换以下脚本中加星标的脚本

WITH procedurerange_cte AS (
select distinct
accountsize as  HospitalSize
,min(catprocsannualintegratedallpayer) over (partition by accountsize) as MinProcsPerAcct
,max(catprocsannualintegratedallpayer) over (partition by accountsize) as MaxProcsPerAcct
from sandbox.vw_hopd_universe_1_ms
 group by accountsize,catprocsannualintegratedallpayer
), accts_cte AS (
select 
accountsize as HospitalSize
,count(master_id) as Count
,sum(catprocsannualintegratedallpayer) as catprocsannualintegratedallpayer
from sandbox.vw_hopd_universe_1_ms
  group by accountsize
), allcatprocs_cte AS (
select 
sum(catprocsannualintegratedallpayer) as AllAnnCatProcs
from sandbox.accts_universeaccts
), totals_cte AS (
select 
case when HospitalSize is null then 'Total' else HospitalSize end as HospitalSize
,sum(Count) as Count
,sum(catprocsannualintegratedallpayer) as catprocsannualintegratedallpayer
from accts_cte
group by grouping sets ((HospitalSize,Count,catprocsannualintegratedallpayer),())
)
select
a.HospitalSize
,a.Count
***--,convert(float,a.Count)/convert(float,(select Count from totals_cte where HospitalSize='Total')) as %OfHospitals***
,a.catprocsannualintegratedallpayer as HospitalAnnCatProcs
***--,a.catprocsannualintegratedallpayer/(select catprocsannualintegratedallpayer from totals_cte where HospitalSize='Total') as %OfHospProcs***
***--,a.catprocsannualintegratedallpayer/(select AllAnnCatProcs from allCatProcs_cte) as %OfAllProcs***
,MinProcsPerAcct
,MaxProcsPerAcct
,***CASE
when a.HospitalSize='Large' then '8 to 10' 
      when a.HospitalSize='Medium' then '5 to  7' 
      when a.HospitalSize='Small' then '0 to  4' 
end as DecilesIncluded***
from totals_cte as a
     left join procedurerange_cte as b
on a.HospitalSize=b.HospitalSize

请帮助将上述脚本转换为 PostgreSQL,因为我是这个领域的新手

标签: postgresql

解决方案


推荐阅读