पोस्टग्रेज में पंक्ति संख्या का चयन करें


102

पोस्टग्रेज में पंक्ति संख्या का चयन कैसे करें।

मैंने यह कोशिश की:

select
    row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,
    cgcode_odc_mapping_id
  from access_odc.access_odc_mapping_tb
  order by cgcode_odc_mapping_id

और यह त्रुटि मिली:

त्रुटि: "ओवर" में या उसके पास सिंटैक्स त्रुटि
LINE 1: चुनें row_number () पर (ORDER BY cgcode_odc_mapping_id)

मैंने इन पृष्ठों की जाँच की है: PostgreSQL क्वेरी में पंक्ति संख्या कैसे दिखाएं?


यह मेरी क्वेरी है:

 select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 

यह त्रुटि है:

त्रुटि: "LINE 1" के ऊपर या पास में सिंटैक्स त्रुटि: चुनें row_number () से अधिक (ORDER BY cgcode_odc_mapping_id) के रूप में


3
Not Workingहमें कुछ भी नहीं बताता है कि हम किसके साथ मदद कर सकते हैं। कृपया आप त्रुटि संदेश और / या अन्य प्रासंगिक जानकारी दे सकते हैं। इसके अलावा, कृपया PostgreSQL का संस्करण निर्दिष्ट करें जिसका आप उपयोग कर रहे हैं।
MatBailie


1
एक अनुमान के अनुसार, यह काम नहीं कर रहा है क्योंकि आप PostgreSQL के पुराने संस्करण पर विंडो फ़ंक्शंस का उपयोग करने की कोशिश कर रहे हैं जो उनका समर्थन नहीं करता है।
क्रेग रिंगर

2
कोई PostgreSQL संस्करण 1.8.4 है।
kgrittn

1
कृपया का आउटपुट पोस्ट करें select version()- कोई संस्करण नहीं है (और कभी नहीं था) एक संस्करण 1.8
a_horse_with_no_name

जवाबों:


178
SELECT tab.*,
    row_number() OVER () as rnum
  FROM tab;

यहाँ डॉक्स में संबंधित अनुभाग है।

PS यह, वास्तव में, संदर्भित प्रश्न में उत्तर से पूरी तरह मेल खाता है।


18
तुम भी में एक आदेश निर्दिष्ट करना चाहिए OVERखंड: OVER (ORDER BY id)। अन्यथा आदेश की गारंटी नहीं है।
एलेक्सएम

3
@pumbo प्रकट होता है row_number () "परिणाम की पंक्ति संख्या" लौटाता है (यानी हमेशा 1 2 3 4 ... यदि आप निर्दिष्ट करते हैं over ()) हालांकि यदि आपके पास एक बाहरी क्वेरी है, तो कोर्स रिफ़र के रिजल्ट को फिर से व्यवस्थित करें: stackoverflow.com/a / ३३
ger१४
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.