Start a conversation ↗

FORMULA & SQL / TOTALS

Average 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
=SORT(LET(g,UNIQUE(A2:A7),HSTACK(g,AVERAGEIF(A2:A7,g,C2:C7))),2,-1)
Google Sheets
=ARRAYFORMULA(SORT(LET(g,UNIQUE(A2:A7),HSTACK(g,AVERAGEIF(A2:A7,g,C2:C7))),2,-1))

One row per group with its average, largest first.

Spills a summary table, largest first. Needs Excel 365 or Google Sheets.

Run on the example rows:

AB
West1640
East980.5
North525
South450

The SQL

PostgreSQL
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC

Run on the example rows:

regionaverage_value
West1640
East980.5
North525
South450
Other databases
MySQL
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC
SQL Server
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC
SQLite
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC
BigQuery
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC
Snowflake
SELECT region, AVG(amount) AS average_value
FROM sales
GROUP BY region
ORDER BY average_value DESC

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.↗