[英]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.