Ao usar
GROUP BY
você não pode SELECT
campos que não fazem parte do GROUP BY
ou usado em uma função agregada. Isso é especificado pelo padrão SQL, embora alguns bancos de dados optem por executar essas consultas de qualquer maneira. Como não há uma única maneira correta de executar essa consulta, eles tendem a apenas escolher a primeira linha que encontram e a retornam, portanto, os resultados variam de forma imprevisível. Parece que você está tentando dizer:
"Para cada publicação me dê a soma das contagens de twitter, facebook e linkedin para aquela publicação".
Se sim, você poderia escrever:
SELECT publication,
sum(twitter_count) AS twitter_sum,
sum(linkedin_count) AS linkedin_sum,
sum(facebook_count) AS facebook_sum
FROM "articles"
WHERE "articles"."user_id" = 1
GROUP BY publication;
Traduzindo isso para ActiveRecord/Rails... até você, eu não uso. Parece que é praticamente o que você tentou escrever, mas o ActiveRecord parece estar desmontando, talvez tentando executar as somas localmente.