5.1 विधान असणे

SQL मध्ये आणखी एक उपयुक्त ऑपरेटर आहे ज्याचा वापर केला जातो GROUP BY, त्याला म्हणतात HAVING.

त्याच्या अर्थाने, ते ऑपरेटरशी पूर्णपणे समान आहे WHERE. हे तुम्हाला फक्त WHEREगटबद्ध करण्यापूर्वी एक पंक्ती फिल्टर सेट करण्याची परवानगी देते आणि मदतीने HAVINGतुम्ही एक फिल्टर सेट करू शकता जो गटबद्ध केल्यानंतर रेकॉर्डवर लागू होईल.

ग्रुपिंग आणि फिल्टरिंग ग्रुपिंग परिणाम वापरताना क्वेरीचे सामान्य दृश्य खालीलप्रमाणे आहे:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition

HAVINGविनंतीमध्ये असेल तरच वापरले जाऊ शकते GROUP BY.

चला एक क्वेरी लिहूया जिथे आम्ही वर्षानुसार नियुक्त कर्मचार्‍यांची संख्या प्रदर्शित करू.

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

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

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

आणि आता आम्ही त्यातून एक किंवा कमी कर्मचारी कामावर घेतलेल्या वर्षांना वगळतो. उदाहरण:

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

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

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

5.3 विधानांच्या अंमलबजावणीचा क्रम

योग्य आणि कार्यक्षम SQL क्वेरी लिहिण्यासाठी, तुम्हाला ते SQL सर्व्हरद्वारे कसे कार्यान्वित केले जातात हे समजून घेणे आवश्यक आहे.

कृती करण्याची प्रक्रिया काटेकोरपणे नियंत्रित केली जाते आणि ती तुमच्या इच्छेवर अवलंबून नाही. तुम्ही ऑपरेटरची पुनर्रचना करू शकत नाही आणि वेगळी ऑर्डर मिळवू शकत नाही.

SQL क्वेरी या क्रमाने अनेक टप्प्यात कार्यान्वित केली जाते.

  1. स्टेज 1 - पंक्ती आणत आहे
    • प्रथम, निर्दिष्ट सारणीतील सर्व पंक्ती निवडल्या आहेत.
    • नंतर गणना केलेली फील्ड त्यांना जोडली जातात.
    • आणि मग सर्व पंक्तींपैकी, केवळ अट पूर्ण करणारेच राहतीलWHERE
  2. स्टेज 2 - समूहीकरण
    • त्यानंतर परिणामांवर गटबद्धता लागू केली जाते.
    • गटबद्ध करताना, फील्ड जसे की COUNT(*).
    • शेवटी, गटबद्ध परिणामावर एक फिल्टर लागू केला जातो HAVING.
  3. स्टेज 3 - वर्गीकरण
    • मागील चरणांमध्ये प्राप्त केलेल्या पंक्ती वापरून क्रमवारी लावल्या आहेत ORDER BY.

शेवटी, परिणाम LIMITआणि सह ट्रिम केले जाऊ शकते OFFSET.