Start a conversation ↗

FORMULA & SQL / LOOKUPS

Keep the latest row for each group.
Tested, not guessed.

The Excel and Google Sheets formula and the SQL query, each run on the rows below. Open this with your own data ↗

The example rows

RowA: RegionB: RepC: AmountD: Order DateE: StatusF: Customer
2NorthAna1,2002026-03-01PaidJo Smith
3SouthBen4502026-03-15OpenRaj Patel
4NorthCy3002026-04-02PaidLee Wong
5EastAna980.502026-04-20PaidMia Ross
6NorthBen752026-05-05OpenJo Smith
7WestDee1,6402026-05-18PaidSam Okoro

The formula

Excel
=FILTER(A2:F7,D2:D7=MAXIFS(D2:D7,A2:A7,A2:A7))
Google Sheets
=QUERY(A1:F7,"select A, max(D) group by A",1)

The rows of the range A2:F7 where the Order Date column (D2:D7) equals the largest value of the Order Date column (D2:D7) where the Region column (A2:A7) is the Region column (A2:A7).

Run on the example rows:

ABCDEF
SouthBen4502026-03-15OpenRaj Patel
EastAna980.52026-04-20PaidMia Ross
NorthBen752026-05-05OpenJo Smith
WestDee16402026-05-18PaidSam Okoro

The SQL

PostgreSQL
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1

Run on the example rows:

regionrepamountorder_datestatuscustomerrn
EastAna980.52026-04-20PaidMia Ross1
NorthBen752026-05-05OpenJo Smith1
SouthBen4502026-03-15OpenRaj Patel1
WestDee16402026-05-18PaidSam Okoro1
Other databases
MySQL
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1
SQL Server
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1
SQLite
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1
BigQuery
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1
Snowflake
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY region ORDER BY order_date DESC) AS rn
  FROM sales
) t
WHERE rn = 1

Your own data

Paste your rows into the free tool and it writes this for your columns, then runs it on your data before you copy it. Open the tool ↗

Bring us the problem. We'll work through the system.

Your next
hard problem.↗