sql - धारा से खंड द्वारा आदेश से धारा निकालें?




oracle oracle10g (2)

क्या ऐसा कोई रास्ता नहीं है जो मैं नीचे दिए गए आंतरिक क्वेरी के हिस्से में 'ऑर्डर बाय lro_pid' क्लॉज के प्रभाव को कम कर सकता हूं?

SELECT *
  FROM (SELECT a.*, 
               Row_Number() over (PARTITION BY search_point_type 
                                      ORDER BY lro_pid) spt_rank
          FROM lro_search_point a
      ORDER BY spt_rank)
 WHERE spt_rank = 1;

मुझे इस परिणाम को विभाजन के भीतर ऑर्डर करने की कोई परवाह नहीं है क्योंकि मैं पूरी तरह से एक भिन्न चर द्वारा इसे ऑर्डर करना चाहता हूं। lro_pid एक अनुक्रमित स्तंभ है, लेकिन यह अभी भी संसाधनों की बर्बादी जैसा लगता है क्योंकि यह वर्तमान में खड़ा है। (शायद एक पंक्ति की सीमा को क्रमबद्ध करने का एक तरीका है? उम्मीद है कि विभाजन के भीतर कोई समय / ऊर्जा खर्च नहीं की जाएगी)


कोशिश करने के लिए कुछ चीजें:

क्या आप उपरोक्त धारा में ORDER BY 'constant' कर सकते हैं?

यदि निरंतर द्वारा आदेश की अनुमति नहीं है, तो ORDER BY (lro_pid * 0) बारे में कैसे ORDER BY (lro_pid * 0) ?

मैं एक ओरेकल विशेषज्ञ नहीं हूं (एमएसएसक्यूएल मेरी बात अधिक है) - इसलिए आपके प्रश्न का उत्तर देने के लिए प्रश्न!


खंड के ORDER BY को रद्द करने के लिए आप ORDER BY rownum का उपयोग कर सकते हैं।





analytic-functions