2056
GB
What is the difference between RANK(), DENSE_RANK(), and ROW_NUMBER() window functions?
IN
RANK(), DENSE_RANK(), और ROW_NUMBER() विंडो फ़ंक्शंस के बीच क्या अंतर है?
A
RANK() never has ties; DENSE_RANK() always has ties
RANK() का कभी संबंध नहीं होता; DENSE_RANK() में हमेशा संबंध होते हैं
B
They are all identical
वे सभी एक जैसे हैं
C
ROW_NUMBER() cannot be used with ORDER BY
ROW_NUMBER() का उपयोग ORDER BY के साथ नहीं किया जा सकता
D
ROW_NUMBER(): unique sequential number with no gaps or ties; RANK(): same rank for ties then skips numbers (1,1,3); DENSE_RANK(): same rank for ties no gaps (1,1,2)
ROW_NUMBER(): बिना किसी अंतराल या संबंध के अद्वितीय अनुक्रमिक संख्या; रैंक(): संबंधों के लिए समान रैंक फिर संख्याओं को छोड़ देता है (1,1,3); DENSE_RANK(): टाई के लिए समान रैंक, कोई अंतराल नहीं (1,1,2)
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
Example with values (100,100,90): ROW_NUMBER() = 1,2,3 (unique, arbitrary tie-breaking). RANK() = 1,1,3 (ties get same rank, next rank skips). DENSE_RANK() = 1,1,2 (ties get same rank, next rank is consecutive, no gaps).
व्याख्या (हिन्दी)
मानों के साथ उदाहरण (100,100,90): ROW_NUMBER() = 1,2,3 (अद्वितीय, मनमाना टाई-ब्रेकिंग)। रैंक() = 1,1,3 (संबंधों को समान रैंक मिलती है, अगली रैंक छूट जाती है)। DENSE_RANK() = 1,1,2 (संबंधों को समान रैंक मिलती है, अगली रैंक लगातार होती है, कोई अंतराल नहीं)।