窗口函数与分组函数的区别就是,窗口函数能生成一个新列填入根据每行记录生成的判断值

# 建立使用了窗口函数的子查询
select *, rank() over(partition by university order by gpa) rank_index
from user_profile
# 返回每个学校的最低gpa对应的设备id
select device_id, university, gpa
from(
    select *, rank() over(partition by university order by gpa) rank_index
    from user_profile
) x1
where rank_index = 1;