मेरे पास एक रेल 3 ऐप है जो उच्च स्कोर रखता है। मैं इसे हेरोकू पर होस्ट कर रहा हूं जो postgresql को डीबी के रूप में उपयोग करता है।रेल का उपयोग कर PostgreSQL में ग्रुप BY से कैसे संपर्क करें?
मुझे स्कोर तालिका से शीर्ष स्कोर निकालने की आवश्यकता है। तालिका में कॉलम score
और user_id
हैं। यह निम्नलिखित के साथ mysql में काम कर रहा था:
Score.order('score DESC').group('user_id').limit(25)
यह प्रत्येक उपयोगकर्ता के शीर्ष स्कोर में शुमार है।
जब मैं Heroku पर एप्लिकेशन शब्दों में कहें, मैं निम्नलिखित psql त्रुटि PGError: ERROR: column "scores.id" must appear in the GROUP BY clause or be used in an aggregate function
मैं चारों ओर पढ़ा है लेकिन एक स्पष्ट उत्तर नहीं मिला, मिलता है। PostgreSQL के साथ काम करने के लिए उपर्युक्त क्वेरी को फिर से बनाने का सबसे इष्टतम तरीका क्या है?
धन्यवाद!
टिम
कर सकता है। स्कोर.इलेक्ट ('DISTINCT ON (user_id) id, user_id, score') ऑर्डर ('user_id, स्कोर डीईएससी')। सीमा (25) और मुझे निम्न त्रुटि मिलती है: "PGError: ERROR: कॉलम id_list.alias_0 नहीं करता है मौजूद लाइन 1: ... id_list.al द्वारा id idlist ऑर्डर ... "। मैं 'id_list' के नाम से एक कॉलम भी नहीं बता रहा हूं, इसलिए मुझे नहीं पता कि यह क्यों आ रहा है। – Tim