select q.device_id,q.university,q.gpa from (select device_id, university, gpa , rank() over(partition by university order by gpa) as rk from user_profile group by device_id,university,gpa order by university asc) q where rk=1;