Я использую Oracle SQL, и мне нужна помощь с жестким запросом.Жесткий запрос с агрегацией
У меня есть две таблицы (table_A
):
GroupID (int)
ClientID (int)
Age (int)
(table_B
):
GroupID (int)
Budget (int)
Мой запрос должен сделать для каждой группы клиентов:
- Вычислить среднее возрастов группы
- Рассчитать средний бюджет каждого клиента с возрастом, как средний возраст (возраст может быть больше или меньше в 1). Например: Average_Age - 1 < < Average_Age Average_Age +-
Output value
: (бюджет)/(средний бюджет)
Например: table_A
:
GroupID | ClientID | Age
A | 11 | 26
A | 22 | 27
A | 33 | 21
B | 44 | 22
B | 55 | 29
B | 66 | 25
C | 77 | 23
C | 88 | 22
C | 99 | 20
D | 111 | 24
D | 222 | 26
D | 333 | 25
table_B
:
GroupID | Budget
A | 100
B | 200
C | 300
D | 400
Ни одно из значений в таблицах не является исправлено. Пример расчета выходного значения Группа A:
- Средний возраст в группе А: (27 + 27 + 21)/3 = 24.6
- В ClientIDs с возрасте от 23-25 являются: 66, 77, 111, 333. Их средний бюджет: (200 + 300 + 400 * 2)/4 = 325
- выходное значение должно быть: 100/325 = 0,307
в таблице вывод должен быть
GroupID | Output Value
A | 0.307
B | ....
C | ....
D | ....
Любые рекомендации, как это сделать? Я пробовал так много способов. Я чувствую себя потерянным.
'Ни одно из значений в таблицах не фиксированы ». Итак, все ли фиксированные значения? (Для ясности) – Siyual
Извините. Все они не фиксированы (я изменил его выше). – Omri