select the id from the table based on highest salary from each dept
table
| Id | dept | salary | 
|---|---|---|
| 1 | support | 25000 | 
| 2 | support | 20000 | 
| 3 | development | 35000 | 
| 4 | development | 25000 | 
| 5 | development | 30000 | 
select Id from table
where salary In (select max(salary) from table group by dept)
If run query like this I am getting output like
| Id | 
|---|
| 1 | 
| 3 | 
| 4 | 
I used the ranking window functions and CTE to solve this query
with rank_message as (select id,dept,
ROW_NUMBER() over (partition by dept order by salary desc) as sal
from table S)
select id,dept from rank_message where sal=1
 
     
    