Start a conversation ↗

FORMULA & SQL / TOTALS

Total for each year.
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
=SUMPRODUCT((YEAR($D$2:$D$7)=YEAR(D2))*$C$2:$C$7)

The sum of the year of the Order Date column ($D$2:$D$7) equals the year of Order Date (D2) times the Amount column ($C$2:$C$7).

Gives each row the total for its year.

Run on the example rows:

RowResult
24645.5
34645.5
44645.5
54645.5
64645.5
74645.5

The SQL

PostgreSQL
SELECT EXTRACT(YEAR FROM order_date) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY EXTRACT(YEAR FROM order_date)
ORDER BY sale_year
Other databases
MySQL
SELECT YEAR(order_date) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY YEAR(order_date)
ORDER BY sale_year
SQL Server
SELECT YEAR(order_date) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY YEAR(order_date)
ORDER BY sale_year
SQLite
SELECT CAST(strftime('%Y', order_date) AS INTEGER) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY CAST(strftime('%Y', order_date) AS INTEGER)
ORDER BY sale_year
BigQuery
SELECT EXTRACT(YEAR FROM order_date) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY EXTRACT(YEAR FROM order_date)
ORDER BY sale_year
Snowflake
SELECT YEAR(order_date) AS sale_year, SUM(amount) AS total
FROM sales
GROUP BY YEAR(order_date)
ORDER BY sale_year

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