sql >> Base de Datos >  >> RDS >> PostgreSQL

PG::Error en la cláusula GROUP BY

Al usar GROUP BY no puedes SELECT campos que no forman parte del GROUP BY o utilizado en una función agregada. Esto lo especifica el estándar SQL, aunque algunas bases de datos optan por ejecutar tales consultas de todos modos. Dado que no existe una única forma correcta de ejecutar una consulta de este tipo, tienden a seleccionar la primera fila que encuentran y la devuelven, por lo que los resultados variarán de manera impredecible.

Parece que estás tratando de decir:

"Para cada publicación, consígueme la suma de los recuentos de Twitter, Facebook y Linkedin para esa publicación".

Si es así, podrías escribir:

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;

Traduciendo eso a ActiveRecord/Rails... depende de ti, no lo uso. Parece que es más o menos lo que intentaste escribir, pero ActiveRecord parece estar estropeándolo, tal vez tratando de ejecutar las sumas localmente.