如何在 sql server 中使用聚合函数返回多于 1 列

问题描述 投票:0回答:0

我有这张表,其中包含来自不同医院的一组医疗条件/程序的数据。这是它的一个片段:data

我正在尝试创建一个包含每 13 个

procedure/condition
和他们的
MAX
min
risk_adjusted_mortality_rate
以及每个最大和最小速率相应的
hospital_full_name
的列表:

这就是我想要实现的目标:

procedure/condition , max_rar, max_hospital_full_name, min_rar, min_hospital_full_name

我已经尝试通过在

MAX
上对它们进行分组来计算
min
procedure/condition
并将其用作与当前表的连接以拉出
max_hospital_full_name
min_hospital_full_name

         CREATE VIEW view1 as
     select [procedure/condition]  MAX(risk_adjusted_mortality_rate) as max_rar, MIN(risk_adjusted_mortality_rate) as min_rar
      from imi..imi_2020
     group by [procedure/condition]
     
    
      select i20.[procedure/condition], hospital_full_name as max_hospital_full_name, county, view1.max_rar
      from imi..imi_2020 i20
      join view1
    on i20.risk_adjusted_mortality_rate= view1.max_rar
    AND i20.[procedure/condition]=view1.[procedure/condition]

结果: results

这给了我正确的结果,我计划做同样的事情,让所有 13

min_rar
对应于
procedure/condition]
的医院。但是,我希望在一张桌子上而不是两张桌子上得到结果。谁能提出更好的方法?

sql sql-server aggregate-functions
© www.soinside.com 2019 - 2024. All rights reserved.