PG :: Error en la cláusula GROUP BY

No podría pensar en una mejor manera de refactorizar el código a continuación (veresta pregunta), aunque sé que es muy feo. Sin embargo, está lanzando un error de Postgres (no con SQLite):

ActiveRecord::StatementInvalid: 
PG::Error: ERROR:  
column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function

La consulta en sí es:

SELECT "articles".* 
FROM "articles" 
WHERE "articles"."user_id" = 1 
GROUP BY publication

Que viene del siguiente código de vista:

[email protected](:publication).map do |p|
  =p.publication
  [email protected]("publication = ?", p.publication).sum(:twitter_count)
  [email protected]("publication = ?", p.publication).sum(:facebook_count)
  [email protected]("publication = ?", p.publication).sum(:linkedin_count)

En SQLite, esto da la salida (por ejemplo) NYT 12 18 14 BBC 45 46 47 CNN 75 54 78, que es prácticamente lo que necesito.

¿Cómo puedo mejorar el código para eliminar este error?

Respuestas a la pregunta(2)

Su respuesta a la pregunta