Допустим, у меня есть таблица TRANSACTIONS:
desc customer_transactions;
+------------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| transactionID | varchar(128) | YES | | NULL | |
| customerID | varchar(128) | YES | | NULL | |
| amountAuthorized | DECIMAL(5,2) | YES | | NULL | |
| createdDatetime | datetime | YES | | NULL | |
+------------------------------+--------------+------+-----+---------+----------------+
В этой таблице есть записи транзакций по кредитным картам для бизнеса SAAS за последние 5 лет.Бизнес имеет типичную модель ежемесячной подписки, когда клиенты автоматически взимают плату в зависимости от своего плана.
Мне нужно найти главных клиентов, которые отвечают за 80% всех доходов (за период времени).Бизнес SAAS очень неравномерен, потому что некоторые клиенты платят 10 / месяц, другие могут платить тысячами в месяц.
Я добавлю фильтр "период времени" позже, просто нужна помощь с агрегацией.
Я хочу создать отчет, в котором я выбираю только тех клиентов, которые получили 80% дохода в этом формате:
+------------+-------+
| customerID | Total |
+------------+-------+
Не уверен, почему этот вопрос был отложен.Мне просто нужна помощь в написании запроса и не хватает опыта работы с SQL.По сути, в заголовке вопроса указывается, что здесь необходимо:
Мне нужно перечислить клиентов и их соответствующие итоги, однако нужно выбрать только тех клиентов, которые составляют 80% от общего дохода.Отчет должен агрегировать итоговые данные по каждому клиенту.
Использование MariaDB версии 10.3.9