LEFT JOIN.
Например, кол-во контактов, кол-во переходов по ссылкам, кол-во покупок, сумма покупок.
Проблема в том, что каждый новый LEFT JOIN умножает кол-во строк, он их дублирует на миллионы, в итоге в COUNT(покупки) выдаёт не актуальное значение, а общее кол-во миллионов копий строк.
Тогда я делаю COUNT(DISTINCT покупки), показывает актуальное значение. Но появляется два новых косяка:
1) запрос длится несколько минут, предполагаемо из-за миллиона ненужных копий строк
2) не получается получить сумму покупок, SUM(DISTINCT покупки.сумма) - такой фокус не прокатит.
На помощь приходит GROUP BY, верно?
В теории, если группировать по всем уникальным ключам джойненных таблиц, то избавимся от миллионов копий строк и DISCTINT нам больше не понадобится, и SUM будет работать корректно.
Но как сгруппировать по нескольким столбцам, оно не хочет грппироваться.
Я два раза там написал t.id_partner, слева и справа, могу ещё тыщу раз написать, но ему на это плевать, в выводе мы всё равно видим id_parnter и пять раз 34
КАК ТАК
у тебя в выборке только записи id_partner = 34 ты это сам наверху написал (where ...)
Обсуждают сегодня