मैं एसक्यूएल सर्वर में इस कुछ इसी तरह की तलाश में हूँ:पोस्टग्रेएसक्यूएल टॉप एन के साथ शीर्ष एन के लिए समकक्ष: LIMIT "संबंधों के साथ"?
SELECT TOP n WITH TIES FROM tablename
मैं PostgreSQL में के बारे में LIMIT
पता है, लेकिन इसके बाद के संस्करण अस्तित्व के बराबर होता है? मैं सिर्फ उत्सुक हूं क्योंकि यह मेरे लिए हर बार एक अतिरिक्त क्वेरी बचाएगा।
यदि मेरे पास nums
: {10, 9, 8, 8, 2}
विशेषता के साथ तालिका Numbers
है।
SELECT nums FROM Numbers ORDER BY nums DESC LIMIT *with ties* 3
यह {10, 9, 8, 8}
लौटना चाहिए क्योंकि यह शीर्ष 3 प्लस अतिरिक्त 8
लेता है के बाद से यह एक दूसरे को बांध: मैं की तरह कुछ करना चाहते हैं।
क्यों इस जटिल? रैंक() फ़ंक्शन बिल्कुल वही करेगा जो आवश्यक है? –
@a_horse_with_no_name: आप बिल्कुल सही हैं (जैसा कि मैंने पहले किया था) मेरे दूसरे विचारों के लिए अनिश्चित थे। –
@Ewin: यह अच्छा है (http://data.stackexchange.com/stackoverflow/query/63525/top-n-with-ties), मुझे नहीं पता था कि स्टैकओवरफ्लो में अंतर्निहित मॉड्यूल है क्वेरी चलाने के लिए :-) हालांकि यदि आपको शीर्ष 3 (10, 9 8) प्राप्त करने की आवश्यकता है और उन सभी 10,9,8 को सूचीबद्ध करने की आवश्यकता है, तो 10, 10, 9, 10, 10, 10, 9, 8, 10, 10, 10, 9, 10, 10, जो होना चाहिए: 10,10,9,8,8। किसी दिए गए समस्या के मामले के साथ 'TIES' के साथ गलत हो सकता है: http://stackoverflow.com/questions/2611822/distinct-with-count-and-sql-server-2005/2612456#2612456 –