போஸ்ட்கிரெஸ் தரவரிசை

Postkires Taravaricai



PostgreSQL இல், rank() செயல்பாடு என்பது ஒரு சாளரச் செயல்பாடாகும், இது கொடுக்கப்பட்ட வரிசையாக்க அளவுகோல்களின் அடிப்படையில் அமைக்கப்பட்ட முடிவுக்குள் ஒவ்வொரு வரிசைக்கும் ஒரு தரவரிசையை ஒதுக்க அனுமதிக்கிறது. பெரும்பாலான சாளர செயல்பாடுகளைப் போலவே, கொடுக்கப்பட்ட முடிவு தொகுப்பில் உள்ள மற்றவற்றுடன் தொடர்புடைய வரிசையின் தரவரிசையை தீர்மானிப்பது போன்ற பகுப்பாய்வு வினவல்களில் ரேங்க் செயல்பாடு பயனுள்ளதாக இருக்கும்.

இந்த டுடோரியல் PostgreSQL செயல்பாடுகளுடன் எவ்வாறு செயல்படுவது என்பதை ஆராய்கிறது. செயல்பாட்டு தொடரியல் மற்றும் அளவுருக்களையும் நாங்கள் ஆராய்ந்து சில நடைமுறை எடுத்துக்காட்டுகளைப் பார்க்கிறோம்.

PostgreSQL ரேங்க்() செயல்பாடு

PostgreSQL இல் rank() செயல்பாட்டின் தொடரியல் பின்வருவனவற்றைக் காட்டுகிறது:







ரேங்க்() மேல்

ரேங்க்() செயல்பாட்டை அழைப்பதன் மூலம் தொடங்குகிறோம். நாம் ஒரு சாளர செயல்பாடு செயல்பாட்டைச் செய்ய விரும்புகிறோம் என்பதைக் குறிக்க OVER முக்கிய சொல்லைப் பயன்படுத்துகிறோம்.



அடுத்தது பகிர்வு_வெளிப்பாடு மூலம் பிரித்தல். கொடுக்கப்பட்ட வெளிப்பாட்டின் அடிப்படையில் இந்த பிரிவு வரிசைகளை பல்வேறு பகிர்வுகளாக பிரிக்கிறது. ஒவ்வொரு புதிய பகிர்வுக்கும் தரவரிசை முழு எண் மதிப்பு 1 இல் தொடங்கும் ஒவ்வொரு பகிர்விலும் தரவரிசை சுயாதீனமாக செய்யப்படுகிறது.



இறுதியாக, வரிசையின் வரிசையை நிர்ணயிக்கும் நெடுவரிசை அல்லது வெளிப்பாட்டைக் குறிப்பிடும் ஆர்டர் மூலம் ஆர்டர் உள்ளது.





PostgreSQL ரேங்க்() செயல்பாடு எடுத்துக்காட்டு

பின்வரும் வினவல் PostgreSQL இன் ரேங்க்() செயல்பாட்டைப் பயன்படுத்துவதற்கான அடிப்படை உதாரணத்தை நிரூபிக்கிறது:

மதிப்பைத் தேர்ந்தெடு, ரேங்க்() மேல் (மதிப்பின்படி வரிசை) தரவரிசையாக
இருந்து (
மதிப்புகள் (10), (20), (5), (15), (10)
AS தரவு(மதிப்பு);

இந்த எடுத்துக்காட்டில், அவற்றின் ஏறுவரிசையின் அடிப்படையில் மதிப்புகளை வரிசைப்படுத்துகிறோம். மதிப்பின் இரண்டு நிகழ்வுகளும் ஒரே தரத்துடன் ஒதுக்கப்படுகின்றன, ஏனெனில் அவை ஒரே மாதிரியாகவும், வரிசைக்குள் ஒரே நிலையில் தோன்றும்.



இதன் விளைவாக அட்டவணை பின்வருமாறு:

மதிப்பைத் தேர்ந்தெடு
இருந்து (
மதிப்புகள் (10), (20), (5), (15), (10)
AS தரவு(மதிப்பு);

பிரிவு மூலம் பகிர்வுடன் PostgreSQL ரேங்க்() செயல்பாடு எடுத்துக்காட்டு

பின்வரும் உதாரணத்தைக் கவனியுங்கள்:

மதிப்பைத் தேர்ந்தெடு
இருந்து (
மதிப்புகள் (10), (20), (5), (15), (10)
AS தரவு(மதிப்பு);

இந்த எடுத்துக்காட்டில், மதிப்பானது இரட்டை எண்ணா அல்லது ஒற்றைப்படை எண்ணா என்பதைச் சரிபார்க்கும் எக்ஸ்ப்ரெஷனுடன் பகிர்வு மூலம் பிரிவைச் சேர்த்துள்ளோம். இது மதிப்புகளை இரண்டு பகிர்வுகளாகத் திறம்பட தொகுக்க வேண்டும்: ஒன்று சம எண்களுக்கு (மீதமுள்ளவை 0) மற்றொன்று ஒற்றைப்படை எண்களுக்கு (மீதமானது 1 ஆகும்).

இதன் விளைவாக தொகுப்பு பின்வருமாறு:

பல SQL அம்சங்களை இணைப்பதன் மூலம் PostgreSQL ரேங்க்() செயல்பாட்டு எடுத்துக்காட்டு

நீங்கள் rank() செயல்பாட்டைப் பயன்படுத்தி மிகவும் சிக்கலான வினவல்களை உருவாக்கலாம். உதாரணமாக, Pagila தரவுத்தளத்தை எடுத்துக் கொள்ளுங்கள். முதல் ஐந்து வாடிக்கையாளர்களை அவர்களின் மொத்த வாடகைக் கொடுப்பனவுகளின் அடிப்படையில் பெற்று அவர்களுக்குத் தரவரிசைகளை வழங்க விரும்புகிறோம் என்று வைத்துக்கொள்வோம்.

பின்வரும் வினவலில் காட்டப்பட்டுள்ளபடி நாம் rank() செயல்பாட்டைப் பயன்படுத்தலாம்:

SELECT customer_id, first_name, last_name, total_payments,
ரேங்க்() ஓவர் (மொத்தம்_கட்டணங்கள் DESC மூலம் ஆர்டர்) தரவரிசை
இருந்து (
c.customer_id, c.first_name, c.last_name, SUM(p.amount) AS மொத்த_பேமெண்ட்கள்
வாடிக்கையாளரிடமிருந்து சி
c.customer_id = p.customer_id இல் பணம் செலுத்துவதில் சேரவும்
c.customer_id, c.first_name, c.last_name மூலம் குழு
) வாடிக்கையாளர்_கட்டணங்கள்
வரிசைப்படி ஆர்டர்
வரம்பு 10;

இந்த எடுத்துக்காட்டில், customer_id, first_name, last_name, total_payment மற்றும் ஒதுக்கப்பட்ட ரேங்க்() ஆகியவற்றைத் தேர்ந்தெடுக்கிறோம். பின்னர், இறங்கு வரிசையில் வரிசைப்படுத்தப்பட்ட மொத்த_கட்டணத்தின் அடிப்படையில் ஒவ்வொரு வாடிக்கையாளருக்கும் ஒரு தரவரிசையை ஒதுக்க rank() செயல்பாட்டைப் பயன்படுத்துகிறோம்.

வாடிக்கையாளர் மற்றும் கட்டண அட்டவணைகளை இணைத்து ஒவ்வொரு வாடிக்கையாளருக்கான மொத்த கட்டணங்களை கணக்கிட உள் துணை வினவல் நம்மை அனுமதிக்கிறது. ஒவ்வொரு வாடிக்கையாளருக்கும் செலுத்தும் தொகையைப் பெற, வாடிக்கையாளர்_ஐடி, முதல்_பெயர் மற்றும் கடைசி_பெயர் நெடுவரிசைகளின் அடிப்படையில் முடிவைக் குழுவாக்குவோம்.

இறுதியாக, வெளிப்புற வினவலில், முடிவுத் தொகுப்பின் மீது ரேங்க்() செயல்பாட்டைப் பயன்படுத்துகிறோம், மேலும் அதை ஏறுவரிசையில் மொத்த_பணம் மூலம் ஆர்டர் செய்கிறோம். முதல் 10 வரிசைகளை மட்டும் பெறுவதற்கான வரம்பு விதியையும் சேர்த்துள்ளோம்.

நீங்கள் பார்க்க முடியும் என, வரிசைப்படுத்துதல், வடிகட்டுதல், திரட்டுதல், இணைத்தல் மற்றும் பல போன்ற பல SQL அம்சங்களை இணைப்பதன் மூலம் அதிக நுண்ணறிவு தரவை உருவாக்கலாம்.

முடிவுரை

வரையறுக்கப்பட்ட நிபந்தனைகளின் அடிப்படையில் அமைக்கப்பட்ட முடிவுகளிலிருந்து கொடுக்கப்பட்ட வரிசையின் தரவரிசையைப் பெறுவதற்கு PostgreSQL இல் உள்ள rank() செயல்பாட்டுடன் எவ்வாறு செயல்படலாம் என்பதை ஆராய்ந்தோம். மேலும் சிக்கலான வினவல்களை உருவாக்க, ரேங்க்() செயல்பாட்டை மற்ற SQL கருவிகளுடன் எவ்வாறு இணைப்பது என்பதையும் நாங்கள் விவரித்தோம்.