PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

GroupingError:ERROR:कॉलम ग्रुप बाय क्लॉज में दिखाई देना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए

आप SELECT * . को मिला नहीं सकते GROUP BY some_column . के साथ पोस्टग्रेज में (जब तक कि some_column पीके है), क्योंकि यह एक विरोधाभास है। सभी गैर-एकत्रित कॉलम (SELECT . में प्रयुक्त) , HAVING या ORDER BY क्लॉज एक एग्रीगेट फंक्शन के बाहर) GROUP BY . में होना चाहिए सूची - जहां प्राथमिक कुंजी स्तंभ किसी तालिका के सभी स्तंभों को प्रतिस्थापित कर सकता है। वरना यह अपरिभाषित है कौन सा कुल सेट से चुनने के लिए मूल्य।

प्रति दस्तावेज़:

<ब्लॉकक्वॉट>

जब GROUP BY मौजूद है, या कोई समग्र कार्य मौजूद है, यह SELECT . के लिए मान्य नहीं है कुल कार्यों के अलावा या जब असमूहीकृत स्तंभ कार्यात्मक रूप से समूहीकृत स्तंभों पर निर्भर होता है, तो असमूहीकृत स्तंभों को संदर्भित करने के लिए सूची अभिव्यक्तियाँ, क्योंकि अन्यथा एक असमूहित स्तंभ के लिए लौटने के लिए एक से अधिक संभावित मान होंगे। एक कार्यात्मक निर्भरता मौजूद होती है यदि समूहबद्ध स्तंभ (या उसके उपसमूह) समूहबद्ध स्तंभ वाली तालिका की प्राथमिक कुंजी हैं।

<उप>एक निश्चित अन्य आरडीबीएमएस यहां गंदी चाल चलने और इसे अनुमति देने और मनमाने मूल्यों को चुनने के लिए जाना जाता है...

ऐसा लगता है कि आप नवीनतम . के साथ टिप्पणी करने वाले अद्वितीय रोगियों की सूची चाहते हैं प्रत्येक टिप्पणी करें। Postgres में सबसे आसान तरीका DISTINCT ON . के साथ है :

SELECT DISTINCT ON (patient_id) *
FROM   comments
WHERE  clinician_id = $1
ORDER  BY patient_id, created_at DESC NULLS LAST;

लेकिन यह SQLite के साथ नहीं उड़ेगा - जो शुरू में लूप में नहीं होना चाहिए:

  • SQLite3 "LIKE" या PostgreSQL "ILIKE" के लिए सामान्य रूबी समाधान?

NULLS LAST केवल तभी प्रासंगिक है जब created_at शून्य हो सकता है:

  • डेटाटाइम एएससी द्वारा पोस्टग्रेएसक्यूएल सॉर्ट करें, पहले शून्य?

DISTINCT ON . के लिए विवरण :

  • समूह द्वारा प्रत्येक समूह में पहली पंक्ति का चयन करें?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FROM में उपश्रेणी का उपनाम होना चाहिए

  2. पोस्टग्रेज में UPDATE RETURNING क्लॉज से चयन नहीं किया जा सकता

  3. डेबियन पर पोस्टग्रेज से पुराने डेटा को हटाने के लिए क्रॉन जॉब

  4. एक नियम का उपयोग करके स्वचालित रूप से एक भौतिक दृश्य को ताज़ा करें या सूचित करें

  5. कैसे जांचें कि PostgreSQL ऐरे में मूल्य है या नहीं