MySQL வரிசை எண் சாளர செயல்பாடு

Mysql Row Number Window Function



MySQL க்குள், ஒரு வரிசை எண் () முறை பகிர்வுக்குள் ஒவ்வொரு வரிசைக்கும் ஒரு காலவரிசை எண்ணைக் கொண்டுள்ளது. இது ஒரு வகையான சாளர அம்சம். பகிர்வுக்குள் உள்ள வரிசைகளின் எண்ணிக்கையுடன் வரிசைகளின் எண்ணிக்கை 1 இல் தொடங்குகிறது. நினைவில் கொள்ளுங்கள், பதிப்பு 8.0 க்கு முன், MySQL வரிசை எண் () செயல்பாட்டை அனுமதிக்காது, இருப்பினும், இந்த அம்சத்தைப் பின்பற்றுவதற்கு உதவும் அமர்வு மாறியை இது வழங்குகிறது. இந்த வழிகாட்டி முழுவதும் MySQL வரிசை எண் () செயல்பாட்டைப் பற்றி மேலும் புரிந்துகொள்வோம் மற்றும் முடிவு சேகரிப்பில் ஒவ்வொரு வரிசைக்கும் தொடர்ச்சியான எண்ணை உருவாக்குவோம். MySQL இல், ROW_NUMBER () முறைகள் பின்வரும் உட்பிரிவுகளுடன் பயன்படுத்தப்படுகின்றன:

  • ஓவர் () பிரிவு அதற்குள் பயன்படுத்தப்படும்.
  • ஆர்டர்கள் மூலம் பிரிவு குறிப்பிடப்பட்ட நெடுவரிசையின் வரிசைப்படுத்தலின் படி முடிவை ஏற்பாடு செய்கிறது.

தொடரியல்:

>> தேர்ந்தெடுக்கவும் col_name,ROW_NUMBER()மேல்( பங்கு Col_name மூலம், உத்தரவின் படி col_name) AS வரிசை_ எண் இருந்து அட்டவணை_ பெயர்;

பயன்பாடுகளிலிருந்து MySQL கட்டளை வரி கிளையன்ட் ஷெல்லைத் திறந்து உள்நுழைய கடவுச்சொல்லை தட்டச்சு செய்வோம்.









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



>> தேர்ந்தெடுக்கவும் * இருந்து தகவல்கள் . விலங்குகள்;





எடுத்துக்காட்டு 01: ROW_NUMBER () பிரிவு மூலம் ஆர்டரைப் பயன்படுத்துதல்

வரிசை எண் செயல்பாட்டின் சில எடுத்துக்காட்டுகளை விவரிக்க அதே அட்டவணையைப் பயன்படுத்துவோம். ROW_NUMBER () செயல்பாட்டிற்குப் பிறகு ஓவர் () ஐப் பின்பற்றுகிறோம், அதே நேரத்தில் ORDER BY உட்பிரிவைப் பயன்படுத்துகிறோம். நெடுவரிசை விலை வரிசைப்படி வரிசைகளை எண்ணும் போது அனைத்து பதிவுகளையும் நாங்கள் பெற்று வருகிறோம். ஒரு நெடுவரிசைக்கு வரிசை_நம் என்ற பெயரைக் கொடுத்துள்ளோம், இது வரிசையின் எண்களைச் சேமிக்கும். அவ்வாறு செய்ய கீழே உள்ள கட்டளையை முயற்சி செய்யலாம்.

>> தேர்ந்தெடுக்கவும் *,ROW_NUMBER()மேல்( உத்தரவின் படி விலை) AS வரிசை_ எண் இருந்து தகவல்கள் . விலங்குகள்;

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



வயதை வரிசைப்படுத்தும் வரிசையைப் பயன்படுத்தும் போது அதே வினவலைத் தொடர்ந்து ஆர்டர் பை உட்பிரிவைச் செயல்படுத்துவோம். பத்தியின் வயதுக்கு ஏற்ப வெளியீடு வழங்கப்படும்.

>> தேர்ந்தெடுக்கவும் *,ROW_NUMBER()மேல்( உத்தரவின் படி வயது) AS வரிசை_ எண் இருந்து தகவல்கள் . விலங்குகள்;

எடுத்துக்காட்டு 02: ROW_NUMBER () பிரிவு மூலம் பங்கைப் பயன்படுத்துதல்

முடிவுகளைப் பார்க்க ROW_NUMBER () வினவலில் ஒரே ஒரு பகுதி உட்பிரிவைப் பயன்படுத்துவோம். ROW_NUMBER () மற்றும் OVER உட்பிரிவைத் தொடர்ந்து பதிவுகளைப் பெற நாங்கள் SELECT வினவலைப் பயன்படுத்துகிறோம், அதே நேரத்தில் நெடுவரிசை நிறத்தின்படி அட்டவணையைப் பிரிக்கிறோம். கீழே உள்ள கட்டளையை கட்டளை ஷெல்லில் இயக்கவும்.

>> தேர்ந்தெடுக்கவும் *,ROW_NUMBER()மேல்( பங்கு வண்ணம் மூலம்) AS வரிசை_ எண் இருந்து தகவல்கள் . விலங்குகள்;

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

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

>> தேர்ந்தெடுக்கவும் *,ROW_NUMBER()மேல்( பங்கு பாலினம் மூலம்) AS வரிசை_ எண் இருந்து தகவல்கள் . விலங்குகள்;

எடுத்துக்காட்டு 03: ROW_NUMBER () பங்கு & ஆணை மூலம் பங்கைப் பயன்படுத்துதல்

மேலே உள்ள இரண்டு உதாரணங்களை நாங்கள் MySQL கட்டளை வரியில் செய்துள்ளோம், இப்போது MySQL Workbench 8.0 இல் ROW_NUMBER () உதாரணத்தைச் செய்ய வேண்டிய நேரம் வந்துவிட்டது. எனவே, பயன்பாடுகளிலிருந்து MySQL Workbench 8.0 ஐத் திறக்கவும். MySQL Workbench ஐ உள்ளூர் ஹோஸ்ட் ரூட் தரவுத்தளத்துடன் இணைத்து வேலை செய்யத் தொடங்குங்கள்.

MySQL பணிப்பெண்ணின் இடது பக்கத்தில், நீங்கள் ஸ்கீமா பட்டையைக் காண்பீர்கள், நேவிகேட்டரை ஊதுங்கள். இந்த திட்டப் பட்டியில், தரவுத்தளங்களின் பட்டியலைக் காணலாம். தரவுத்தள பட்டியலின் கீழ், நீங்கள் வெவ்வேறு அட்டவணைகள் மற்றும் சேமித்த நடைமுறைகளைக் கொண்டிருப்பீர்கள், கீழே உள்ள படத்தில் நீங்கள் பார்க்க முடியும். எங்கள் தரவுத்தளத்தில் 'டேட்டா'வில் வெவ்வேறு அட்டவணைகள் உள்ளன. ROW_NUMBER () செயல்பாட்டு செயல்பாட்டிற்குப் பயன்படுத்தத் தொடங்க வினவல் பகுதியில் SELECT கட்டளையைப் பயன்படுத்தி அட்டவணை ‘order1’ ஐத் திறப்போம்.

>> தேர்ந்தெடுக்கவும் * இருந்து தகவல்கள் .வரிசை 1;

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

MySQL Workbench 8.0 இன் வினவல் பகுதியில், கீழே காட்டப்பட்டுள்ள வினவலை தட்டச்சு செய்யவும். வினவல் தேர்ந்தெடுக்கப்பட்ட விதிமுறையுடன் தொடங்கப்பட்டது, அனைத்து பதிவுகளையும் தொடர்ந்து ROW_NUMBER () செயல்பாட்டையும் OVER உட்பிரிவையும் கொண்டு வருகிறது. OVER உட்பிரிவுக்குப் பிறகு, இந்த அட்டவணையின்படி அட்டவணையைப் பகிர்வுகளாகப் பிரிப்பதற்காக PARTITION BY அறிக்கையால் தொடரப்பட்ட நெடுவரிசை நிலையை நாங்கள் குறிப்பிட்டோம். நெடுவரிசை பிராந்தியத்தின் படி அட்டவணையை இறங்கு வழியில் ஏற்பாடு செய்ய ஆர்டர் பை உட்பிரிவு பயன்படுத்தப்படுகிறது. வரிசை எண்கள் வரிசை_நம் நெடுவரிசையில் வைக்கப்படும். இந்த கட்டளையை இயக்க ஃப்ளாஷ் ஐகானைத் தட்டவும்.

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

முடிவுரை:

இறுதியாக, MySQL Workbench மற்றும் MySQL Command-line Client Shell இல் ROW_NUMBER () செயல்பாட்டைப் பயன்படுத்தி தேவையான அனைத்து உதாரணங்களையும் முடித்துள்ளோம்.