Думаю, у меня есть хороший пример, который соответствует вашему вопросу:
Пример таблицы
+----------+---------+---------+--------+
| order_id | cust_id | empl_id | total |
+----------+---------+---------+--------+
| 1 | c | 1 | 24.78 |
| 2 | a | 4 | 28.54 |
| 3 | b | 3 | 48.69 |
| 4 | b | 3 | -16.39 |
| 5 | z | 2 | 29.92 |
| 6 | z | 3 | 12.50 |
| 7 | a | 4 | 10.20 |
| 8 | c | 1 | 5.22 |
+----------+---------+---------+--------+
запрос
SELECT order_id, total / (SUM(total) OVER(PARTITION BY cust_id)) AS percentage
FROM orders
ORDER BY order_id;
результат
+----------+------------+
| order_id | percentage |
+----------+------------+
| 1 | 0.82 |
| 2 | 0.73 |
| 3 | 1.50 |
| 4 | -0.50 |
| 5 | 0.70 |
| 6 | 0.29 |
| 7 | 0.26 |
| 8 | 0.17 |
+----------+------------+
как вы можете видеть, например, для cust_id --> c
есть два значения 24,78
и 5,22
, которые sum = 30.00
и percentage
это 24,78 --> 0.82
и 5,22 --> 0.17
Пожалуйста проверьте, если это то, что вы хотите.