Example od data:
Id Name Value
------------------
1 A 1
2 A 2
3 B 3
4 B 2
5 B 1
When I use Group BY
select Name, Max(Value)
from TableName
GROUP BY Name
Recived data:
A 2
B 3
I would read Value from last row, it should looks like belov:
A 2
B 1
One canonical approach uses the ROW_NUMBER()
window function:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Id DESC) rn
FROM TableName
)
SELECT Name, Value
FROM cte
WHERE rn = 1
ORDER BY Name;