SQL சரம் மொத்த செயல்பாடுகள்

Sql Caram Motta Ceyalpatukal



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

SUM(), AVG(), COUNT(), MAX மற்றும் MIN() போன்ற செயல்பாடுகளை ஒரு எடுத்துக்காட்டு உள்ளடக்கியது. இருப்பினும், SQL இல் உள்ள மொத்த செயல்பாடுகளைப் பற்றி நீங்கள் கவனிக்கும் ஒரு விஷயம் என்னவென்றால், அவை எண் செயல்பாடுகளை நோக்கியவை.

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







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



சரம் மொத்த செயல்பாடுகள் என்றால் என்ன?

சரம் மொத்த செயல்பாடுகள் என்பது ஒரு குழு அல்லது வரிசைகளில் உள்ள சரங்களின் தொகுப்பில் ஒருங்கிணைப்பு செயல்பாடுகளைச் செய்து ஒற்றை முடிவை வழங்கும் செயல்பாடுகளின் தொகுப்பாகும்.



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





சில பொதுவான சரம் மொத்த செயல்பாடுகள் பின்வருமாறு:

  • GROUP_CONCAT() – PostgreSQL மற்றும் MySQL
  • STRING_AGG – SQL சர்வர்
  • ARRAY_AGG – PostgreSQL
  • லிஸ்டாக் - ஆரக்கிள்

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



GROUP_CONCAT()

GROUP_CONCAT() செயல்பாடு PostgreSQL மற்றும் MySQL தரவுத்தளங்களால் ஆதரிக்கப்படுகிறது. இது பல வரிசைகளிலிருந்து மதிப்புகளை ஒரு சரத்தில் இணைக்க அனுமதிக்கிறது.

எங்களிடம் பின்வருமாறு 'பணியாளர்கள்' அட்டவணை உள்ளது என்று வைத்துக்கொள்வோம்:

அட்டவணை பணியாளர்களை உருவாக்கு (
Employee_id INT AUTO_INCREMENT முதன்மை விசை,
முதல்_பெயர் VARCHAR(50),
கடைசி_பெயர் VARCHAR(50),
துறை VARCHAR(50)
);

ஊழியர்களுக்குள் நுழைக்கவும் (முதல்_பெயர், கடைசி_பெயர், துறை) VALUES
('ஆலிஸ்', 'ஸ்மித்', 'மனித வளங்கள்'),
('பாப்', 'ஜான்சன்', 'மார்க்கெட்டிங்'),
('சார்லி', 'வில்சன்', 'நிதி'),
('டேவிட்', 'பிரவுன்', 'விற்பனை'),
('ஈவா', 'டேவிஸ்', 'பொறியியல்');

வெளியீடு:

பணியாளரின் முழுப் பெயரையும் முதல் பெயரை எடுத்து கடைசிப் பெயருடன் இணைப்பதன் மூலம் நாம் தீர்மானிக்க விரும்பினால், பின்வரும் எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி GROUP_CONCAT() செயல்பாட்டைப் பயன்படுத்தலாம்:

தேர்ந்தெடுக்கவும்
துறை,
GROUP_CONCAT(முதல்_பெயர், ' ', கடைசி_பெயர்) முழுப்பெயர்
இருந்து
ஊழியர்கள்
குழு மூலம்
துறை;

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

இதில் ஒவ்வொரு துறையிலும் உள்ள பணியாளர்களின் பட்டியல் உள்ளது.

STRING_AGG

இந்த செயல்பாடு GROUP_CONCAT() செயல்பாட்டைப் போன்றது ஆனால் இது SQL சர்வர் தரவுத்தளத்தில் மட்டுமே ஆதரிக்கப்படுகிறது.

ஒரு எடுத்துக்காட்டு பயன்பாடு பின்வருமாறு:

தேர்ந்தெடுக்கவும்
துறை,
STRING_AGG(முதல்_பெயர், கடைசி_பெயர், ' ') முழுப்பெயர்
இருந்து
ஊழியர்கள்
குழு மூலம்
துறை;

இது குறிப்பிட்ட நெடுவரிசைகளில் ஸ்பேஸ் ஒரு பிரிப்பானாக சரம் ஒருங்கிணைப்பை செய்கிறது.

ARRAY_AGG

ARRAY_AGG செயல்பாடு PostgreSQL தரவுத்தளத்தில் மட்டுமே கிடைக்கும். மதிப்புகளை ஒற்றை அணிவரிசையில் ஒருங்கிணைக்க இது அனுமதிக்கிறது.

ஒரு உதாரணம் பின்வருமாறு:

தேர்ந்தெடுக்கவும்
துறை,
ARRAY_AGG(முதல்_பெயர்) AS பணியாளர்கள்_பட்டியல்
இருந்து
ஊழியர்கள்
குழு மூலம்
துறை;

இது பணியாளரின் பெயரை அணிவரிசையாக ஒருங்கிணைக்க வேண்டும்.

LISTTAGG()

LISTAGG() செயல்பாடு Oracle தரவுத்தளத்தில் மட்டுமே கிடைக்கும். இது ஒரு குறிப்பிட்ட டிலிமிட்டருடன் மதிப்புகளை ஒரு சரமாக இணைக்க அனுமதிக்கிறது.

ஒரு உதாரணம் பின்வருமாறு:

துறை, LISTTAGG(முதல்_பெயர், கடைசி_பெயர்,  ' ') குழுவில் (பணியாளர்_பெயர் ASC மூலம் ஆர்டர்) பணியாளர்களாக தேர்ந்தெடுக்கவும்
ஊழியர்களிடமிருந்து
துறை வாரியாக குழு;

இது ஊழியர்களின் பெயர்கள் மற்றும் குறிப்பிடப்பட்ட பிரிவை இணைக்கிறது.

முடிவுரை

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