如何解决SQL:GROUP和MAX多列
我是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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。