Eiten
Eiten

Reputation: 149

SQL Retrieving data from last record with Group BY

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

Upvotes: 0

Views: 29

Answers (1)

Tim Biegeleisen
Tim Biegeleisen

Reputation: 522509

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;

Upvotes: 0

Related Questions