Saat menggunakan GROUP BY
Anda tidak dapat SELECT
bidang yang bukan merupakan bagian dari GROUP BY
atau digunakan dalam fungsi agregat. Ini ditentukan oleh standar SQL, meskipun beberapa database tetap memilih untuk mengeksekusi kueri tersebut. Karena tidak ada satu cara yang benar untuk mengeksekusi kueri seperti itu, mereka cenderung hanya memilih baris pertama yang mereka temukan dan mengembalikannya, jadi hasilnya akan bervariasi secara tak terduga.
Sepertinya Anda mencoba mengatakan:
"Untuk setiap publikasi, berikan saya jumlah akun twitter, facebook, dan linkedin untuk publikasi itu".
Jika demikian, Anda dapat menulis:
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;
Diterjemahkan ke ActiveRecord/Rails ... terserah Anda, saya tidak menggunakannya. Sepertinya cukup banyak yang Anda coba tulis tetapi ActiveRecord tampaknya mengacaukannya, mungkin mencoba mengeksekusi penjumlahan secara lokal.