У меня есть набор данных что-то вроде этогоГруппировка в SQLite через один подмножество множества на основе элементов другого подмножества множества
A | B | C | D | E
-----------------------------------------------
1 | Carrot | <null> | a | 111
2 | Carrot | <null> | b | 222
3 | Carrot | zzz | c | 333
4 | Banana | <null> | a | 444
5 | Banana | <null> | b | 555
6 | Banana | <null> | c | 666
7 | Grape | <null> | a | 777
8 | Grape | <null> | b | 888
9 | Grape | zzz | c | 999
10 | Carrot | <null> | a | 000
11 | Carrot | <null> | b | AAA
12 | Carrot | zzz | c | BBB
Теперь то, что я пытаюсь сделать, это суммировать значения E, где D имеет значение b, но только для тех элементов в B, где C имеет значение zzz. Таким образом, в приведенном выше примере я смотрю на значения 222, 888 и AAA, но меня не интересует 555.
Я могу суммировать их по группам и сумме на основе значения B без проблем, но что Я хотел бы сделать, это сумма на основе С.
Мой код выглядит примерно так
select B,
(select sum(E) as duty_payable
from table table_alias_b
where D = "b"
and table_alias_b.B = table_alias_a.B)
from table table_alias_a
where table_alias_b.B in (select B
from table
where (C = 'zzz'))
group by B
Или что-то подобное (есть присоединяется через три таблицы происходит тоже ...)
Это вообще понятно?