У меня есть база данных Oracle 11g с двумя таблицами, из которых мне нужно извлекать, группировать и считать данные. Данные в таблицах:
Table 'ED'
|NAME | SSN | IDG | IDE | IDD | SPOUSE | CHILD |
========================================================
|John | 111111111 | 12345 | 123 | 0 | FALSE | FALSE |
|Sue | 111221111 | 12345 | 123 | 1 | TRUE | FALSE |
|Joe | 111331111 | 12345 | 123 | 2 | FALSE | TRUE |
|Sam | 111441111 | 12345 | 321 | 0 | FALSE | TRUE |
|Jane | 111551111 | 12345 | 321 | 1 | TRUE | FALSE |
|Jim | 111661111 | 12345 | 555 | 0 | FALSE | TRUE |
|Zach | 111771111 | 12345 | 555 | 2 | FALSE | TRUE |
Table 'EL'
|IDG | IDE | IDD | FLAG01 | FLAG02 | FLAG03 | FLAG04 |
========================================================
|12345 | 123 | 0 | TRUE | FALSE | TRUE | TRUE |
|12345 | 123 | 1 | TRUE | FALSE | FALSE | FALSE |
|12345 | 123 | 2 | TRUE | TRUE | TRUE | TRUE |
|12345 | 321 | 0 | TRUE | FALSE | TRUE | TRUE |
|12345 | 321 | 1 | TRUE | FALSE | FALSE | FALSE |
|12345 | 555 | 0 | TRUE | FALSE | TRUE | TRUE |
|12345 | 555 | 1 | TRUE | FALSE | FALSE | FALSE |
Итак, первые 3 человека - это семья, отец, супруг и ребенок. Мне нужно сосчитать их всех как группу "семья" под IDG = 12345 и IDE = 123. Следующие 2 человека - пара, муж и жена. Мне нужно сгруппировать их как "пару". Последние 2 человека - это отец и ребенок, поэтому их нужно сгруппировать как «папа-ребенок». Следующая группировка - это счетчик каждой из вышеперечисленных группировок, где FLAG01 = T, а затем отдельный счет, где FLAG02 - это истина, а FLAG03 - это истина, а FLAG04 - это истина. Таким образом, желаемый результат будет:
FLAG01=T:
Family: 3
Couple: 2
Dad-Child: 2
FLAG02=T:
Family: 1
Couple: 0
Dad-Child: 0
FLAG03=T:
Family: 2
Couple: 1
Dad-Child: 1
FLAG04=T:
Family: 2
Couple: 1
Dad-Child: 1
Я знаю, что должно быть соединение двух таблиц для полей IDG и IDE, но я не уверен, как группировать по категориям "семья", "пара", "папа-ребенок", а затем подсчитывать числа основанный на флагах, являющихся истинными или ложными. Я ценю любую помощь!