Похоже, что это пошаговый запрос, поэтому давайте начнем с самой маленькой части: получим количество продаж на пользователя в день.
SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id
Тогда мы можем получить самый активный пользователь за каждый день :
SELECT DISTINCT ON (sale_date) sale_date, user_id
FROM (
SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id
) AS counts_by_date_and_user
ORDER BY sale_date, sales -- consider breaking ties somehow
Затем мы можем посчитать, как часто пользователь был самым активным за день, отсортировать по нему и получить идентификатор своей команды.
SELECT team_id, user_id, count(*) as days
FROM (
SELECT DISTINCT ON (sale_date) sale_date, user_id
FROM (
SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id
) AS counts_by_date_and_user
ORDER BY sale_date, sales -- consider breaking ties somehow
) AS most_active
JOIN users USING (user_id)
GROUP BY user_id
ORDER BY days DESC