DENSE_RANK() செயல்பாடு, மேலும் ஒரு குறிப்பிட்ட நெடுவரிசையில் உள்ள மதிப்புகளின் அடிப்படையில் முடிவுத் தொகுப்பிற்குள் ஒவ்வொரு வரிசைக்கும் ஒரு தனிப்பட்ட தரவரிசையை ஒதுக்க அனுமதிக்கிறது. இது ரேங்க்() செயல்பாட்டிற்கு மிகவும் ஒத்ததாக உள்ளது, ஆனால் செயல்பாடு நகல் பதிவுகளை எவ்வாறு கையாளுகிறது என்பதில் சிறிய வேறுபாடுகள் உள்ளன.
இந்த டுடோரியலில், இந்த செயல்பாடு எவ்வாறு செயல்படுகிறது, வழங்கப்பட்ட தொடரியல் மற்றும் தரவுத்தளத்தில் அதை எவ்வாறு பயன்படுத்தலாம் என்பதை ஆராய்வோம்.
எப்படி இது செயல்படுகிறது
இந்த செயல்பாடு எவ்வாறு செயல்படுகிறது என்பதை விளக்குவதன் மூலம் தொடங்குவோம். செயல்பாடு உயர்மட்டமானது என்பதை நினைவில் கொள்வது நல்லது, மேலும் அடிப்படை செயல்படுத்தலை நம்மால் விளக்க முடியாது.
ரேங்க் 1 இலிருந்து தொடங்கி, நெடுவரிசைகளில் உள்ள ஒவ்வொரு தனிப்பட்ட மதிப்பிற்கும் 1 ஆல் அதிகரிப்பதன் மூலம் ஒவ்வொரு வரிசைக்கும் ஒரு தரவரிசையை ஒதுக்குவதன் மூலம் செயல்பாடு செயல்படுகிறது.
குறிப்பிட்ட நெடுவரிசைகளில் ஒரே மாதிரியான மதிப்புகள் (நகல்கள்) கொண்ட வரிசைகள் ஒரே தரத்துடன் ஒதுக்கப்படும் மற்றும் வேறு மதிப்புடன் அடுத்த வரிசை எந்த இடைவெளியும் இல்லாமல், அடுத்த கிடைக்கக்கூடிய தரத்துடன் ஒதுக்கப்படும்.
நாம் குறிப்பிட்டுள்ளபடி, ரேங்க்() செயல்பாட்டிலிருந்து வேறுபடுத்தும் நகல் மதிப்புகள் இருக்கும் இடத்தில் செயல்பாடு எந்த இடைவெளியையும் விடாது.
அடர்த்தி_ரேங்க்() செயல்பாட்டின் பொதுவான பயன்பாடானது தரவரிசை செயல்பாடுகளைச் செய்வதாகும். எடுத்துக்காட்டாக, சிறந்த N பதிவுகள் போன்றவற்றைக் கண்டறிய இதைப் பயன்படுத்தலாம்.
செயல்பாட்டு தொடரியல்:
பின்வருபவை dens_rank() செயல்பாட்டின் தொடரியல் விவரிக்கிறது:
DENSE_RANK() ஓவர் ([PARTITION by partition_expression, ... ]
ஆர்டர் வரிசை_வெளிப்பாடு மூலம் [ASC | DESC],...
)
கொடுக்கப்பட்ட தொடரியல்:
- நாம் dens_rank() செயல்பாட்டிலேயே தொடங்குகிறோம்.
- OVER உட்பிரிவு சாளர செயல்பாடு விவரக்குறிப்புகளின் தொடக்கத்தைக் குறிக்கிறது. முடிவு தொகுப்பிற்குள் தரவரிசை எவ்வாறு பயன்படுத்தப்படுகிறது என்பதை இது வரையறுக்கிறது.
- பகிர்வு_வெளிப்பாடு மூலம் பிரித்தல் என்பது ஒரு விருப்ப விதியாகும், இதன் விளைவாக வரும் தொகுப்பை ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளின் அடிப்படையில் குழுக்களாக அல்லது பகிர்வுகளாக பிரிக்க அனுமதிக்கிறது. புதிய பகிர்வில் தரவரிசை மீட்டமைப்புடன் ஒவ்வொரு பகிர்விலும் தரவரிசை தனித்தனியாகப் பயன்படுத்தப்படுகிறது.
- வரிசைப்படுத்தல்_வெளிப்பாடு மூலம் ஆர்டர் ஆனது, விளைந்த பகிர்வுகளில் தரவை வரிசைப்படுத்த நாம் பயன்படுத்த விரும்பும் வரிசையைக் குறிப்பிடுகிறது.
மாதிரி தரவு
அடர்த்தியான_ரேங்க்() செயல்பாட்டை எவ்வாறு பயன்படுத்துவது என்பதை விளக்க, மாதிரித் தரவைக் கொண்ட அட்டவணையுடன் தொடங்குவோம். எங்கள் விஷயத்தில், நாங்கள் ஒரு மாதிரி 'ஆர்டர்கள்' அட்டவணையைப் பின்வருமாறு பயன்படுத்துகிறோம்:
எடுத்துக்காட்டு 1: Dense_Rank() செயல்பாடு பயன்பாடு
இதன் விளைவாக வரும் ஆர்டர்களை விலையின் அடிப்படையில் தரவரிசைப்படுத்த dens_rank() செயல்பாட்டைப் பயன்படுத்தலாம். பின்வரும் உதாரண வினவலைக் கவனியுங்கள்:
தேர்ந்தெடுக்கவும்ஆர்டர்_ஐடி,
வாடிக்கையாளர்_பயனர் பெயர்,
தயாரிப்பு_வாங்கப்பட்டது,
DENSE_RANK() ஓவர் (
ஆர்டர் மூலம்
விலை DISC
) விலை_தரவரிசை
இருந்து
ஆர்டர்கள் ஓ;
கொடுக்கப்பட்ட எடுத்துக்காட்டில், ஆர்டர்களின் விலையின் அடிப்படையில் தரவை தரவரிசைப்படுத்த dens_rank() செயல்பாட்டைப் பயன்படுத்துகிறோம். நாங்கள் தரவைக் குழுவாக்காததால் பிரிவின்படி பிரிவைத் தவிர்க்கிறோம்.
இதன் விளைவாக வெளியீடு பின்வருமாறு:
எடுத்துக்காட்டு 2: பகிர்வு மூலம்
வாங்கிய தயாரிப்பின் அடிப்படையில் தரவை பல்வேறு பிரிவுகளாகக் குழுவாக்க, பிரிவின்படி பிரிவையும் சேர்க்கலாம்.
ஒரு எடுத்துக்காட்டு வினவல் பின்வருமாறு:
தேர்ந்தெடுக்கவும்ஆர்டர்_ஐடி,
வாடிக்கையாளர்_பயனர் பெயர்,
தயாரிப்பு_வாங்கப்பட்டது,
DENSE_RANK() ஓவர் (
தயாரிப்பு_வாங்கப்பட்டதன் மூலம் பகிர்வு
ஆர்டர் மூலம்
விலை DISC
) விலை_தரவரிசை
இருந்து
ஆர்டர்கள் ஓ;
இதன் விளைவாக வரும் குழுக்களின் அடிப்படையில் தரவை பல்வேறு குழுக்களாக தொகுத்து, ஒவ்வொரு குழுவிலும் உள்ள உருப்படிகளுக்கான தரவரிசையைப் பயன்படுத்த வேண்டும்.
முடிவுரை
இந்த இடுகையில், குறிப்பிட்ட நெடுவரிசைகளின் அடிப்படையில் மதிப்புகளுக்கு ஒரு தரவரிசையை ஒதுக்க SQL இல் அடர்த்தியான_ரேங்க்() சாளர செயல்பாட்டைப் பயன்படுத்துதல் மற்றும் வேலை செய்வதற்கான அடிப்படைகளை நாங்கள் கற்றுக்கொண்டோம்.