У меня таблица платежей выглядит следующим образом:
+--------------+---------+
| Type | Amount |
+--------------+---------+
| General | 500 |
| General | 700 |
| Assets | 450 |
| Business | 270 |
| General | 70 |
| Assets | 350 |
+--------------+---------+
Мне нужна сумма и процентная группа по типу.
Мой запрос -
SELECT fld_type, SUM(fld_amount) FROM tbl_payment group by fld_type
+--------------+---------+
| Type | Amount |
+--------------+---------+
| General | 1270 |
| Assets | 800 |
| Business | 270 |
+--------------+---------+
Я просто получаю сумму, но не могу рассчитать процент по сумме суммы в этом случае 2340 и рассчитывать с каждым элементом группы, например, для общего -
1270 * 100/2340 = 56,27
как это --
+--------------+---------+----------+
| Type | Amount | Percent% |
+--------------+---------+----------+
| General | 1270 | 54.27 |
| Assets | 800 | 34.19 |
| Business | 270 | 11.54 |
+--------------+---------+----------+
Любая помощь приветствуется.
Чтобы получить процент для каждой группы, вы можете сделать это как
select fld_type,
sum(fld_amount),
(sum(fld_amount) / t.total) * 100 percent
from tbl_payment
cross join (
select sum(fld_amount) total from tbl_payment
) t
group by fld_type
попробуйте это выражение
SELECT type,sum(amount),sum(amount)*100/(select sum(amount) from tbl_payment) FROM 'tbl_payment' group by type