В целом, в SQL - если вы агрегируете с помощью групп - вы должны решить, будет ли агрегироваться поле в вашем операторе select или это группа.Вы не можете просто позволить этому стоять без всякого контекста.Так что в вашем случае вы, вероятно, захотите либо удалить все остальные поля
SELECT
SUM(a.amount) totalcost,
c.friendly_campaign,
p.friendly_partner_name,
FROM
[TABLE 1] a
LEFT OUTER JOIN
[TABLE 2] p
ON
a.partner_name = p.raw_partner_name
LEFT OUTER JOIN
[TABLE 3] c
ON
a.campaign_name = c.campaign
GROUP BY ROLLUP(c.friendly_campaign, p.friendly_partner_name)
, либо добавить их в группы, в которые вы агрегируете a.amount
:
SELECT
SUM(a.amount) totalcost,
a.campaign_name,
c.friendly_campaign,
p.friendly_partner_name,
a.partner_name,
a.genre,
a.season,
a.package
FROM
[TABLE 1] a
LEFT OUTER JOIN
[TABLE 2] p
ON
a.partner_name = p.raw_partner_name
LEFT OUTER JOIN
[TABLE 3] c
ON
a.campaign_name = c.campaign
GROUP BY ROLLUP(2,3,4,5,6,7,8)