Добрый день.
Необходимо получить всех аудиторов, которые связаны с определенной возрастной группой, при условие что в их связи суммарное кол-во в каждой группе больше (колонка value таблица 3);
Проблема из-за таблицы 4, т.к она при объедение дает дубли на таблицу 2, и отсюда при дальнейшем объедение и суммирование получается сумма у учетом дублей, ни группировка на DISTINCT - дубли не убирает. А если без суммирование вывести результат, но с группировкой или DISTINCT, то дубли пропадают, но не при суммирование. Как быть?
1. аудиторы (auditors)
Ее структура тут не важна...
2. возрастные группы (audiences)
3. карта связи возрастной группы и аудитора (auditors_audiences_map)
4. раскрытия промежутка возрастной группы (audiences_range_map)![fccd5558c9954c63874b56a5f1d339d3.png](//habrastorage.org/files/fcc/d55/58c/fccd5558c9954c63874b56a5f1d339d3.png)
Примеры запросов, с группировкой и без..
(
SELECT am2.id, SUM(am2.value)
FROM auditors_audiences_map AS am2
LEFT JOIN audiences_range_map AS a2 ON (a2.value BETWEEN 13 AND 17)
WHERE am2.audience_id=a2.audience_id
GROUP BY am2.audience_id
)
(
SELECT am2.id, am2.value
FROM auditors_audiences_map AS am2
LEFT JOIN audiences_range_map AS a2 ON (a2.value BETWEEN 13 AND 17)
WHERE am2.audience_id=a2.audience_id
GROUP BY am2.audience_id
)
результаты выполнения:
1. С суммированием и группировкой
![c11db67ad1da4f7bba9a0b919bff73dd.png](//habrastorage.org/files/c11/db6/7ad/c11db67ad1da4f7bba9a0b919bff73dd.png)
2. Без суммирование и группировкой
![f27b14322b1d43289d8ce9c82cb82711.png](//habrastorage.org/files/f27/b14/322/f27b14322b1d43289d8ce9c82cb82711.png)
3. Без суммирование и без группировки
![868f7eeecb8b45798081d578bae6c3a7.png](//habrastorage.org/files/868/f7e/eec/868f7eeecb8b45798081d578bae6c3a7.png)
Как быть, не пойму в чем проблема...
Явно при суммирование, группировка не учитывается, но как избежать, не могу придумать :(