MySQL தரவுத்தளத்துடன் பணிபுரியும் போது, நீங்கள் மதிப்புகளை வடிகட்ட விரும்பும் நிகழ்வுகள் அடிக்கடி இருக்கும். நீங்கள் WHERE விதியைப் பயன்படுத்தலாம் என்றாலும், எல்லா நிகழ்வுகளுக்கும் இது எப்போதும் வேலை செய்யாது. மொத்த செயல்பாட்டைப் பயன்படுத்தி வடிகட்டி வினவலைச் செயல்படுத்தவும், குழுக்களைப் பயன்படுத்தவும் நீங்கள் விரும்பும் போது HAVING விதி பயன்படுத்தப்படுகிறது.
HAVING உட்பிரிவு அதன் வடிகட்டியில் உள்ள GROUP BY உட்பிரிவைச் சார்ந்துள்ளது மற்றும் வழங்கப்பட்ட நிபந்தனையின் அடிப்படையில் வினவலைச் செயல்படுத்துகிறது. இது நிபந்தனையின் அடிப்படையில் வடிப்பானைக் கட்டுப்படுத்துகிறது மற்றும் தேர்ந்தெடுக்கப்பட்ட குழுக்கள் நிபந்தனையைப் பூர்த்தி செய்தால் மட்டுமே அவற்றைத் திருப்பியளிக்கும். தொகை வரம்பை மீறும் MySQL HAVING விதியைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள் எங்களிடம் உள்ளன. அந்த வகையில், இன்றைய இடுகையின் முடிவில் அதை எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் தேர்ச்சி பெறுவீர்கள்.
வாசலை விட கூட்டுத்தொகை அதிகமாக இருக்கும் MySQL HAVING பிரிவை எவ்வாறு பயன்படுத்துவது
நீங்கள் MySQL HAVING விதியை GROUP by clause உடன் பயன்படுத்துகிறீர்கள். அதன் தொடரியல் பின்வருமாறு:
தேர்வு வெளிப்பாடு1, .. express_n, aggregate_func (expression) டேபிள்_பெயரில் இருந்து GROUP மூலம் வெளிப்பாடு
SUM(), COUNT(), MIN(), MAX(), மற்றும் AVG() உள்ளிட்ட பல்வேறு மொத்த செயல்பாடுகளை நீங்கள் பயன்படுத்தலாம். மொத்த செயல்பாட்டுடன் பயன்படுத்தப்படாத எந்த வெளிப்பாடும் GROUP BY உட்பிரிவுடன் குறிப்பிடப்பட வேண்டும் என்பதை நினைவில் கொள்ளவும்.
நிபந்தனையைப் பொறுத்தவரை, நீங்கள் நிபந்தனையுடன் சரிபார்க்க விரும்பும் வரம்பை நீங்கள் குறிப்பிடும் ஒருங்கிணைந்த முடிவுகளுக்கு இது பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டாக, நீங்கள் SUM() செயல்பாட்டைப் பயன்படுத்தலாம் மற்றும் வெளிப்பாடு 10 இன் வரம்பை சந்திக்கிறதா என்பதைச் சரிபார்க்கலாம். வழங்கப்பட்ட எடுத்துக்காட்டுகளில் அதைப் பற்றி மேலும் புரிந்துகொள்வோம்.
HAVING பிரிவு எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்து கொள்ள, நாம் வேலை செய்யும் மாதிரி தரவுத்தளத்தை உருவாக்குவோம். எங்கள் தரவுத்தளத்தை 'பதிவு' என்று பெயரிடுகிறோம்.
எங்களுடைய வெவ்வேறு நெடுவரிசைகள் மற்றும் தரவு வகைகளைக் கொண்டிருக்க “வேலைக்காரர்கள்” என்ற அட்டவணையையும் உருவாக்குவோம். இங்கே, பெயர், நேரம், வேலை தேதி போன்ற தொழிலாளர்களின் தரவுகளுடன் நாங்கள் வேலை செய்கிறோம்.
எங்கள் அட்டவணையின் விளக்கத்தைச் சரிபார்ப்பதன் மூலம், அனைத்து நெடுவரிசைகளும் வெற்றிகரமாக உருவாக்கப்பட்டன என்பதை உறுதிப்படுத்தலாம்.
மதிப்புகளை அட்டவணையில் செருகுவோம். எங்களிடம் வெவ்வேறு மணிநேரம் மற்றும் நாட்களில் வேலை செய்யும் வெவ்வேறு தொழிலாளர்கள் உள்ளனர். இந்தத் தரவைப் பயன்படுத்தி, தொகை வரம்பை மீறும் HAVING விதியைப் பயன்படுத்தலாம்.
எங்களின் முதல் உதாரணத்திற்கு, அதிக மணிநேரம் வேலை செய்த தொழிலாளர்களைக் கண்டுபிடிக்க விரும்பும் ஒரு வழக்கைக் கருத்தில் கொள்வோம். HAVING விதிக்கு, மணிநேரங்களுக்கான கூட்டுத்தொகை செயல்பாட்டைச் சேர்க்கவும். GROUP BY உட்பிரிவில், வாசலை விட அதிகமான மொத்த மணிநேரங்களைக் கொண்டு தொழிலாளர்களை வகைப்படுத்த, பெயர் வரிசையைப் பயன்படுத்தி வரிசைகளை நாங்கள் குழுவாக்குகிறோம்.
மொத்த மணிநேரத்திற்கான நமது வரம்பு 7 ஆக இருந்தால், எங்கள் கட்டளையை பின்வருமாறு செயல்படுத்துகிறோம்:
பெயர், SUM(மணிகள்) என மொத்தம்_மணிநேரம்கட்டளையை இயக்குவதன் மூலம், இரண்டு வரிசைகளைக் கொண்ட வெளியீட்டைப் பெறுகிறோம், ஏனெனில் HAVING பிரிவில் குறிப்பிடப்பட்டுள்ள வரம்பை இரண்டு தொழிலாளர்கள் மட்டுமே தாண்டியுள்ளனர்.
7 மணிநேர வரம்புக்கு மேல் பணிபுரியும் தொழிலாளர்களைக் கொண்டவர்களைக் காண நாங்கள் துறைகளை வகைப்படுத்த விரும்புகிறோம் என்று வைத்துக்கொள்வோம். நாங்கள் துறையைத் தேர்ந்தெடுத்து, SUM மொத்த செயல்பாட்டை மணிநேரத்துடன் பயன்படுத்துகிறோம் மற்றும் துறை வெளிப்பாட்டைப் பயன்படுத்தி வரிசைகளை குழுவாக்குகிறோம்.
எங்கள் கட்டளை பின்வருமாறு:
துறையைத் தேர்ந்தெடு, SUM(மணிநேரம்) என மொத்தம்_மணிநேரம்முடிவுகளிலிருந்து, வரிசைகளை வடிகட்ட முடிந்ததைச் சரிபார்த்து, எங்கள் வரம்பை விட அதிகமான மணிநேரத் தொகையை மட்டுமே வைத்திருக்கிறோம்.
இதேபோல், 10 மணிநேர வரம்பை மீறும் வகையில், அதிக எண்ணிக்கையிலான பணிபுரியும் தொழிலாளர்களைக் கொண்ட பணித் தேதியை வடிகட்ட விரும்பினால், பணித் தேதி வெளிப்பாட்டைத் தேர்ந்தெடுக்கிறோம். பின்னர், SUM செயல்பாட்டை மணிநேரத்துடன் பயன்படுத்துகிறோம் மற்றும் வேலை தேதியைப் பயன்படுத்தி வரிசைகளை குழுவாக்குகிறோம்.
கட்டளை பின்வருமாறு:
பணித் தேதியைத் தேர்ந்தெடுங்கள், SUM(மணிகள்) அதிகபட்சம்_மணிநேரம்கட்டளையைச் செயல்படுத்திய பிறகு, ஒரே ஒரு வேலைத் தேதியில் அதன் மொத்த மணிநேரங்களின் கூட்டுத்தொகை வரம்பை மீறுகிறது என்பதைக் காட்டுகிறது:
முடிவுரை
மொத்த செயல்பாட்டைப் பயன்படுத்தி வடிகட்டி வினவலை இயக்க விரும்பினால் MySQL HAVING விதி பயன்படுத்தப்படுகிறது. இது ஒரு குறிப்பிட்ட வினவலை இயக்க, GROUP BY விதியுடன் இணைக்கப்பட்டுள்ளது. இந்த இடுகை MySQL HAVING உட்பிரிவு பற்றிய அனைத்தையும் விவரிக்கிறது, இதில் கூட்டுத்தொகை வரம்பை விட அதிகமாக உள்ளது. வழங்கப்பட்ட எடுத்துக்காட்டுகளுடன், MySQL HAVING விதியுடன் எவ்வாறு செயல்படுவது என்பதை நீங்கள் இப்போது புரிந்துகொண்டுள்ளீர்கள்.