У меня есть таблица PostgreSQL, как это:
CREATE TABLE foo(man_id, subgroup, power, grp)
AS VALUES
(1, 'Sub_A', 4, 'Group_A'),
(2, 'Sub_B', -1, 'Group_A'),
(3, 'Sub_A', -1, 'Group_B'),
(4, 'Sub_B', 6, 'Group_B'),
(5, 'Sub_A', 5, 'Group_A'),
(6, 'Sub_B', 1, 'Group_A'),
(7, 'Sub_A', -1, 'Group_B'),
(8, 'Sub_B', 2, 'Group_B'),
(9, 'Sub_C', 2, 'Group_B');
Расчет мощности работает следующим образом:
- Общая мощность подгруппы Sub_A в группе Group_A составляет (4 + 5) = 9
- Общая мощность подгруппы Sub_B в группе Group_A составляет ((-1) + 1) = 0
- Общая мощность подгруппы Sub_A в группе GroupB: ((-1) + (-1)) = -2
- Общая мощность подгруппы Sub_B в группе GroupB: (6 + 2) = 8
Таким образом, мощность Sub_A в Group_A не равна мощности Sub_A в Group_B
Таким образом, мощность Sub_B в Group_A не равна мощности Sub_B в Group_B
Я хочу сделать запрос к базе данных и извлечь строки, в которых для одного и того же subgroup
общего количества имен power
не равно для всех остальных grp
имен.
Какой рекомендуемый способ сделать это?
Я могу найти сумму полной мощности:
SELECT sum(power) AS total_power
FROM foo
GROUP BY grp
Также будет принято решение MySQL.