அறிக்கை மூலம் 3.1 குழு
SQL மொழி மிகவும் சக்தி வாய்ந்தது. எளிமையான தரவுப் பெறுதலுடன் கூடுதலாக, வினவல் நேரத்தில் தரவைக் குழுவாக்க இது உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, ஒவ்வொரு பிராண்டிலும் எத்தனை வகையான தயாரிப்புகள் உள்ளன என்பதை அறிய விரும்புகிறோம், அதை எப்படி செய்வது?
இதற்கென ஒரு பிரத்யேக ஆபரேட்டர் இருக்கிறார் GROUP BY
, அது எப்படி எழுதப்பட்டுள்ளது என்பது இங்கே.
GROUP BY column
ஒவ்வொரு பிராண்டிற்கான தயாரிப்பு வகைகளின் எண்ணிக்கையைக் காண்பிக்க SQL ஐக் கேட்கும் வினவலை எழுதுவோம். அத்தகைய கோரிக்கை இதுபோன்றதாக இருக்கும்:
SELECT brand, COUNT(*)
FROM product
GROUP BY brand
பின்வரும் வினவல் முடிவைப் பெறுவீர்கள்:
பிராண்ட் | எண்ணிக்கை (*) |
---|---|
(ஏதுமில்லை) | 2 |
போஷ் | 4 |
ஐ.கே.இ.ஏ | 6 |
எல்ஜி | 2 |
ஸ்மார்ட்ஃப்ளவர் | 1 |
நாங்கள் எந்த வகையான கோரிக்கையை எழுதினோம், எந்த வகையான முடிவைப் பெற்றோம் என்பதை கவனமாக பகுப்பாய்வு செய்வோம். இதன் விளைவாக, நாம் இரண்டு நெடுவரிசைகளைக் காண்கிறோம். பிராண்டுகளின் பட்டியலைக் கொண்ட முதல், இது தர்க்கரீதியானது. "பிராண்ட் --> அளவு" ஜோடிகளின் தொகுப்பைப் போன்ற ஒன்றைப் பெற விரும்புகிறோம் .
பிராண்ட் பெயர்களில் ஒரு சொல் உள்ளது என்பதை நினைவில் கொள்க NULL
. உண்மையில், அது எழுதப்பட்ட பிராண்டில் எங்களிடம் தயாரிப்புகள் உள்ளன NULL
, அவற்றை இங்கே பார்க்கிறோம். கொஞ்சம் எதிர்பாராதது, ஆனால் பயனுள்ளதாக இருக்கும். முத்திரை இல்லாத பொருட்கள் எத்தனை உள்ளன என்பதை நாம் பார்க்கலாம்.
இப்போது கோரிக்கையை விரிவாகப் பார்ப்போம். ஒவ்வொரு பிராண்டின் தயாரிப்புகளின் எண்ணிக்கையை நாங்கள் அறிய விரும்பினோம், எனவே நாங்கள் எழுதினோம் GROUP BY brand
, மேலும் அதில் பிராண்ட் மற்றும் வெளிப்பாட்டையும் SELECT
எழுதினோம்COUNT(*)
COUNT(*)
வரிசைகளின் குழுவில் நிகழ்த்தப்படும் மொத்த செயல்பாடு என்று அழைக்கப்படும். எங்கள் விஷயத்தில், அவள் வெறுமனே அவர்களின் எண்ணிக்கையை எண்ணுகிறாள். அத்தகைய செயல்பாடுகள் நிறைய உள்ளன, அவற்றை சிறிது நேரம் கழித்து பார்ப்போம்.
3.2 குழு மூலம் சிக்கலான வினவல்கள்
இப்போது 10 க்கும் குறைவான தயாரிப்புகளை முதலில் நிராகரித்து, பின்னர் அவற்றைக் குழுவாக்கும் வினவலை எழுதுவோம். அத்தகைய கோரிக்கை இதுபோன்றதாக இருக்கும்:
SELECT brand, COUNT(*)
FROM product
WHERE price > 10
GROUP BY brand
பின்வரும் வினவல் முடிவைப் பெறுவீர்கள்:
பிராண்ட் | எண்ணிக்கை (*) |
---|---|
போஷ் | 4 |
ஐ.கே.இ.ஏ | 5 |
எல்ஜி | 2 |
ஸ்மார்ட்ஃப்ளவர் | 1 |
அனைத்து NULL தயாரிப்புகளும் எங்கள் முடிவுகள் அட்டவணையில் இருந்து மறைந்துவிட்டன, ஏனெனில் அவை மிகவும் மலிவானவை, மேலும் IKEA தயாரிப்புகளின் எண்ணிக்கை 1. 6ல் இருந்து 5 ஆக குறைந்துள்ளது.
முதலில் நீங்கள் WHERE
விரும்பிய வரிகளை வடிகட்டுவதற்குப் பயன்படுத்துங்கள், அதன் பிறகு மட்டுமே முடிவுக்கு குழுவாகப் பயன்படுத்துங்கள்.
3.3 முடிவின் நெடுவரிசைப் பெயர்கள்
மூலம், நீங்கள் விளைந்த நெடுவரிசைகளுக்கு பெயர்களைக் கொடுக்கலாம். சர்வர் பெயரை எப்படி பரிந்துரைத்தது என்று பார்க்கவா count(*)
? அதை மொத்தமாக மாற்றுவோம். அத்தகைய கோரிக்கை இதுபோன்றதாக இருக்கும்:
SELECT brand, COUNT(*) AS total
FROM product
WHERE price > 10
GROUP BY brand
பின்வரும் வினவல் முடிவைப் பெறுவீர்கள்:
பிராண்ட் | மொத்தம் |
---|---|
போஷ் | 4 |
ஐ.கே.இ.ஏ | 5 |
எல்ஜி | 2 |
ஸ்மார்ட்ஃப்ளவர் | 1 |
நீங்கள் ஏற்கனவே உள்ள நெடுவரிசைகளை மறுபெயரிடலாம். முன்பு பயன்படுத்திய வினவல்களில் ஒன்றை எடுத்து நெடுவரிசைகளில் புதிய பெயர்களைச் சேர்ப்போம்.
SELECT
id AS product_id,
name AS product_name,
price
FROM product
WHERE price < 20 AND brand IS NOT NULL
பின்வரும் வினவல் முடிவைப் பெறுவீர்கள்:
தயாரிப்பு_ஐடி | பொருளின் பெயர் | விலை |
---|---|---|
2 | நாற்காலி | 5.00 |
8 | விளக்கு | 15.00 |
GO TO FULL VERSION