繁体   English   中英

SQL:GROUP 和 MAX 多列

[英]SQL : GROUP and MAX multiple columns

我是 SQL 初学者,有人可以帮我查询 SQL 查询吗?

我的桌子看起来像下面

PatientID   Date        Time    Temperature
1           1/10/2020   9:15    36.2
1           1/10/2020   20:00   36.5
1           2/10/2020   8:15    36.1
1           2/10/2020   18:20   36.3
2           1/10/2020   9:15    36.7
2           1/10/2020   20:00   37.5
2           2/10/2020   8:15    37.1
2           2/10/2020   18:20   37.6
3           1/10/2020   8:15    36.2
3           2/10/2020   18:20   36.3

我怎样才能得到每个病人每天的最高温度:

PatientID   Date        Temperature
1           1/10/2020   36.5
1           2/10/2020   36.3
2           1/10/2020   37.5
2           2/10/2020   37.6

提前致谢!

对于这个数据集,简单的聚合似乎就足够了:

select patientid, date, max(temperature) temperature
from mytable
group by patientid, date

另一方面,如果您想在具有最高日温度的行上显示其他列,则它是不同的。 你需要一些过滤; 一种选择使用窗口函数:

select *
from (
    select t.*, 
        rank() over(partition by patientid, date order by temperature desc)
    from mytable t
) t
where rn = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM