4.1 गटबद्ध स्तंभ

हे देखील महत्त्वाचे आहे की जर तुम्ही रेकॉर्ड गटबद्ध केले तर विभागात SELECTतुम्ही फक्त ते स्तंभ निर्दिष्ट करू शकता ज्याद्वारे डेटा गटबद्ध केला आहे.

आपणकरू शकत नाहीटाइप क्वेरी लिहा आणि विभागात नावSELECT कॉलम निर्दिष्ट करा :

SELECT brand, name
FROM product
GROUP BY brand

तुमच्याकडे उत्पादन सारणीमध्ये नाव फील्डसह अनेक पंक्ती आहेत आणि तुम्हाला येथे कोणती पंक्ती बदलायची आहे हे स्पष्ट नाही. पुन्हा विचार करा: तुम्हाला प्रत्येक ब्रँडच्या उत्पादनांची संख्या जाणून घ्यायची आहे आणि परिणामी सारणी उत्पादनाचे नाव कसे मिळवू शकते?

जर तुम्ही ऑपरेटर वापरत असाल GROUP BY, तर तुमच्या निकालात सामान्य पंक्ती येऊ शकत नाहीत, परंतु केवळ स्तंभ ज्याद्वारे डेटा गटबद्ध केला जातो आणि "गणना केलेले स्तंभ", जसे कीCOUNT(*)

4.2 गणना केलेल्या स्तंभांनुसार गटबद्ध करणे

परंतु तुम्ही एकाधिक स्तंभांनुसार आणि गणना केलेल्या स्तंभांनुसार देखील गटबद्ध करू शकता. उदाहरण:

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year

आणि या क्वेरीचा परिणाम:

भाड्याचे_वर्ष एकूण
2012
2013
2014
2015 2
2018

चला आमच्या विनंतीचे विश्लेषण करूया.

कर्मचारी सारणीमध्ये , प्रत्येक कर्मचाऱ्याची एक अनन्य भाड्याची तारीख असते, त्यामुळे त्याद्वारे डेटा गटबद्ध करणे कार्य करणार नाही - प्रत्येक तारखेसाठी एक रेकॉर्ड असेल आणि गटबद्ध करणे फारसा अर्थपूर्ण नाही. परंतु जर आपण नोकरीच्या तारखेपासून नोकरीच्या वर्षाकडे वळलो, तर अशी परिस्थिती असू शकते की कंपनीने एकाच वर्षात अनेक कर्मचारी नियुक्त केले.

गटबद्ध करण्यापूर्वी हे सारणी कसे दिसेल ते पुन्हा पाहू:

SELECT
 	id,
 	name,
 	YEAR(join_date) AS hire_year,
 	join_date
FROM employee

आणि या क्वेरीचा परिणाम:

आयडी नाव भाड्याचे_वर्ष रुजू दिनांक
इव्हानोव्ह इव्हान 2012 2012-06-30
2 पेट्रोव्ह पेत्र 2013 2013-08-12
3 इव्हानोव्ह सेर्गे 2014 2014-01-01
4 राबिनोविच मोइशा 2015 2015-05-12
किरिएन्को अनास्तासिया 2015 2015-10-10
6 वास्का 2018 2018-11-11

परंतु या परिणामी तक्त्याला hare_year द्वारे गटबद्ध केले जाऊ शकते आणि एका विशिष्ट वर्षात किती लोकांना नियुक्त केले गेले ते शोधू शकता.

4.3 एकाधिक स्तंभांद्वारे गटबद्ध करणे

आता आपण प्रत्येक वर्षाच्या प्रत्येक महिन्यात किती कर्मचारी कामावर घेतले हे शोधण्याचा प्रयत्न करूया. हे करण्यासाठी, आम्हाला क्वेरीमध्ये एकाच वेळी एक नाही, तर दोन गणना केलेली फील्ड जोडणे आवश्यक आहे - भाड्याचे वर्ष (hire_year) आणि भाड्याचा महिना (hire_month).

चला अशी एक क्वेरी लिहूया:

SELECT
 	id,
 	name,
 	YEAR(join_date) AS hire_year,
 	MONTH(join_date) AS hire_month,
 	join_date
FROM employee

आणि या क्वेरीचा परिणाम:

आयडी नाव भाड्याचे_वर्ष भाड्याने_महिना रुजू दिनांक
इव्हानोव्ह इव्हान 2012 6 2012-06-30
2 पेट्रोव्ह पेत्र 2013 8 2013-08-12
3 इव्हानोव्ह सेर्गे 2014 2014-01-01
4 राबिनोविच मोइशा 2015 2015-05-12
किरिएन्को अनास्तासिया 2015 10 2015-10-10
6 वास्का 2018 अकरा 2018-11-11

जर आम्ही या निकाल सारणीतील डेटा महिन्यानुसार गटबद्ध करतो, तर आम्ही लोकांना फक्त गटांमध्ये गटबद्ध करतो, मग ते कितीही वर्षासाठी कामावर घेतले होते. आणि आम्हाला परिणामी सारणीमध्ये तीन स्तंभ असणे आवश्यक आहे: वर्ष, महिना आणि नियुक्त कर्मचार्यांची संख्या.

हे करण्यासाठी, ऑपरेटर नंतर, GROUP BYआपल्याला एका स्तंभाचे नाव नाही तर दोनचे नाव वापरण्याची आवश्यकता आहे. उदाहरण:

SELECT
 	YEAR(join_date) AS hire_year,
 	MONTH(join_date) AS hire_month,
 	COUNT(*) AS total
FROM employee
GROUP BY hire_year, hire_month

आणि या क्वेरीचा परिणाम:

भाड्याचे_वर्ष भाड्याने_महिना एकूण
2012 6
2013 8
2014
2015
2015 10
2018 अकरा

आमच्याकडे टेबलमध्ये काही नोंदी आहेत, त्यामुळे एकूण स्तंभात सर्वत्र एकके आहेत. आणि तसे, लक्षात घ्या की आपण जितके अधिक स्तंभ गटबद्ध करू तितक्या अधिक पंक्ती आपल्या परिणामात असतील.