Не зная фактической структуры таблицы, ограничений, зависимостей и данных, трудно сказать, в чем может быть проблема.
У вас уже есть несколько потенциальных клиентов в комментариях, которые вы должны рассмотреть в первую очередь.
Например, вы написали, что этот подзапрос возвращает правильные результаты:
SELECT ads_id,
CASE
WHEN action_type = 'post_engagement'
THEN SUM(value)
END AS post_engagement,
CASE
WHEN action_type = 'offsite_conversion.fb_pixel_purchase'
THEN SUM(value)
END AS website_purchases
FROM Actions a
GROUP BY ads_id, action_type
Это также дает правильные результаты:
SELECT ads_id,
SUM(
CASE
WHEN action_type = 'post_engagement'
THEN value
END
) AS post_engagement,
SUM(
CASE
WHEN action_type = 'offsite_conversion.fb_pixel_purchase'
THEN value
END
) AS website_purchases
FROM Actions
GROUP BY ads_id
Если это так, попробуйте заменить ваш подзапрос на этот.
Если у вас все еще есть проблема, то я бы проверил, правильное ли ваше условие соединения, как может показаться, что для кампании (campaign_id
) вы могли бы иметь несколько записей с одинаковым id
, что умножит результаты подзапроса - это зависит от того, что на самом деле является первичным ключом (или уникальным ограничением) в favorite_ads
.