GROUP BY
using का उपयोग करते समय आप SELECT
नहीं कर सकते वे फ़ील्ड जो GROUP BY
. का हिस्सा नहीं हैं या एक समग्र कार्य में उपयोग किया जाता है। यह SQL मानक द्वारा निर्दिष्ट किया गया है, हालांकि कुछ डेटाबेस वैसे भी ऐसे प्रश्नों को निष्पादित करना चुनते हैं। चूंकि इस तरह की क्वेरी को निष्पादित करने का कोई एक सही तरीका नहीं है, वे केवल पहली पंक्ति को ढूंढते हैं और उसे वापस कर देते हैं, इसलिए परिणाम अप्रत्याशित रूप से भिन्न होंगे।
ऐसा लगता है कि आप यह कहना चाह रहे हैं:
"प्रत्येक प्रकाशन के लिए मुझे उस प्रकाशन के लिए ट्विटर, फ़ेसबुक और लिंक्डइन काउंट का योग प्राप्त करें"।
अगर ऐसा है, तो आप लिख सकते हैं:
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;
इसे ActiveRecord/Rails में अनुवाद करना ... आप पर निर्भर है, मैं इसका उपयोग नहीं करता हूं। ऐसा लगता है कि आपने जो लिखने की कोशिश की है वह काफी कुछ है लेकिन ActiveRecord इसे उलझा रहा है, शायद स्थानीय स्तर पर रकम निष्पादित करने का प्रयास कर रहा है।