Ваш запрос уже хорошо начат. Чтобы получить сумму продаж за каждый год (2018, 2019, 2020) в виде трех строк, вы можете добавить условие `sales_year IN ('2018', '2019', '2020')` в вашем запросе. Вот как может выглядеть полный запрос:
SELECT
SUM(cost) AS total_sales,
EXTRACT(YEAR FROM time) AS sales_year
FROM
dep
INNER JOIN prod ON prod.id = dep.id
INNER JOIN sales ON prod.id = sales.prod_id
WHERE time >= '2018-01-01 00:00:00'
AND city = 'town1'
AND sales_year IN ('2018', '2019', '2020')
GROUP BY sales_year
ORDER BY sales_year ASC;
Этот запрос вернет сумму продаж за каждый из трех годов (2018, 2019, 2020) в виде трех строк. Каждая строка будет содержать сумму продаж (`total_sales`) и год (`sales_year`).
Надеюсь, это поможет вам решить вашу задачу!