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 | 1 |
2013 | 1 |
2014 | 1 |
2015 | 2 |
2018 | 1 |
எங்கள் கோரிக்கையை பகுப்பாய்வு செய்வோம்.
பணியாளர் அட்டவணையில் , ஒவ்வொரு பணியாளருக்கும் ஒரு தனிப்பட்ட பணியமர்த்தப்பட்ட தேதி உள்ளது, எனவே அதன் மூலம் தரவைக் குழுவாக்குவது வேலை செய்யாது - ஒவ்வொரு தேதிக்கும் ஒரு பதிவு இருக்கும் மற்றும் குழுவாக்கம் அதிக அர்த்தத்தை அளிக்காது. ஆனால் நாம் பணியமர்த்தப்பட்ட தேதியிலிருந்து பணியமர்த்தப்பட்ட ஆண்டிற்கு மாறினால், நிறுவனம் ஒரே ஆண்டில் பல ஊழியர்களை வேலைக்கு அமர்த்தும் சூழ்நிலையாக இருக்கலாம்.
குழுவாக்கும் முன் இந்த அட்டவணை எப்படி இருக்கும் என்பதை மீண்டும் பார்ப்போம்:
SELECT
id,
name,
YEAR(join_date) AS hire_year,
join_date
FROM employee
மற்றும் இந்த வினவலின் முடிவு:
ஐடி | பெயர் | வாடகை_ஆண்டு | சேரும் நாள் |
---|---|---|---|
1 | இவனோவ் இவான் | 2012 | 2012-06-30 |
2 | பெட்ரோவ் பெட்ர் | 2013 | 2013-08-12 |
3 | இவனோவ் செர்ஜி | 2014 | 2014-01-01 |
4 | ரபினோவிச் மொய்ஷா | 2015 | 2015-05-12 |
5 | கிரியென்கோ அனஸ்தேசியா | 2015 | 2015-10-10 |
6 | வாஸ்கா | 2018 | 2018-11-11 |
ஆனால் இந்த அட்டவணையை hire_year மூலம் தொகுத்து , ஒரு குறிப்பிட்ட ஆண்டில் எத்தனை பேர் பணியமர்த்தப்பட்டனர் என்பதைக் கண்டறியலாம்.
4.3 பல நெடுவரிசைகளால் தொகுத்தல்
ஒவ்வொரு ஆண்டும் ஒவ்வொரு மாதமும் எத்தனை பணியாளர்களை நாங்கள் பணியமர்த்தினோம் என்பதை இப்போது கண்டுபிடிக்க முயற்சிப்போம். இதைச் செய்ய, வினவலில் ஒரே நேரத்தில் ஒன்றல்ல, இரண்டு கணக்கிடப்பட்ட புலங்களைச் சேர்க்க வேண்டும் - வாடகை ஆண்டு (குளிர்_ஆண்டு) மற்றும் வாடகை மாதம் (கூலி_மாதம்).
இப்படி ஒரு வினவலை எழுதலாம்:
SELECT
id,
name,
YEAR(join_date) AS hire_year,
MONTH(join_date) AS hire_month,
join_date
FROM employee
மற்றும் இந்த வினவலின் முடிவு:
ஐடி | பெயர் | வாடகை_ஆண்டு | வாடகை_மாதம் | சேரும் நாள் |
---|---|---|---|---|
1 | இவனோவ் இவான் | 2012 | 6 | 2012-06-30 |
2 | பெட்ரோவ் பெட்ர் | 2013 | 8 | 2013-08-12 |
3 | இவனோவ் செர்ஜி | 2014 | 1 | 2014-01-01 |
4 | ரபினோவிச் மொய்ஷா | 2015 | 5 | 2015-05-12 |
5 | கிரியென்கோ அனஸ்தேசியா | 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 | 1 |
2013 | 8 | 1 |
2014 | 1 | 1 |
2015 | 5 | 1 |
2015 | 10 | 1 |
2018 | பதினொரு | 1 |
அட்டவணையில் எங்களிடம் சில பதிவுகள் உள்ளன, எனவே மொத்த நெடுவரிசையில் எல்லா இடங்களிலும் அலகுகள் உள்ளன. மேலும், எத்தனை நெடுவரிசைகளை நாம் குழுவாக்குகிறோமோ, அந்த அளவுக்கு அதிகமான வரிசைகள் முடிவில் இருக்கும் என்பதை நினைவில் கொள்ளவும்.
GO TO FULL VERSION