அறிக்கையின் மூலம் SQL குழு பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தும்

அறிக்கையின் மூலம் SQL குழு பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தும்

தொடர்புடைய தரவுத்தளங்களின் சக்தியின் பெரும்பகுதி தரவை வடிகட்டுதல் மற்றும் அட்டவணைகளை ஒன்றாக இணைப்பதன் மூலம் வருகிறது. இதனால்தான் நாங்கள் அந்த உறவுகளை முதலில் பிரதிநிதித்துவப்படுத்துகிறோம். ஆனால் நவீன தரவுத்தள அமைப்புகள் மற்றொரு மதிப்புமிக்க நுட்பத்தை வழங்குகின்றன: குழுவாக்குதல்.





ஒரு தரவுத்தளத்திலிருந்து சுருக்கமான தகவலைப் பிரித்தெடுக்க குழு உங்களை அனுமதிக்கிறது. பயனுள்ள புள்ளிவிவர தரவை உருவாக்க முடிவுகளை இணைக்க இது உங்களை அனுமதிக்கிறது. சராசரி புள்ளிவிவரங்களின் பட்டியல்கள் போன்ற பொதுவான வழக்குகளுக்கான குறியீட்டை எழுதுவதிலிருந்து குழுவாக்குதல் உங்களைக் காப்பாற்றுகிறது. மேலும் இது மிகவும் திறமையான அமைப்புகளை உருவாக்க முடியும்.





பிரிவு மூலம் குழு என்ன செய்கிறது?

குழு குறிப்பிடுவதைப் போல, குழுக்கள் ஒரு சிறிய தொகுப்பாக மாறும். முடிவுகள் தொகுக்கப்பட்ட நெடுவரிசையின் ஒவ்வொரு தனி மதிப்புக்கும் ஒரு வரிசையைக் கொண்டிருக்கும். சில பொதுவான மதிப்புகளைப் பகிரும் வரிசைகளுடன் சில மாதிரித் தரவைப் பார்த்து அதன் பயன்பாட்டைக் காட்டலாம்.





குறைந்த சக்தி முறை உங்கள் தொலைபேசியை வேகமாக சார்ஜ் செய்கிறது

பின்வருவது மிகவும் எளிமையான தரவுத்தளமாகும், இரண்டு அட்டவணைகள் பதிவு ஆல்பங்களைக் குறிக்கும். அத்தகைய தரவுத்தளத்தை நீங்கள் அமைக்கலாம் ஒரு அடிப்படை திட்டத்தை எழுதுதல் நீங்கள் தேர்ந்தெடுத்த தரவுத்தள அமைப்புக்காக. தி ஆல்பங்கள் அட்டவணையில் முதன்மை விசையுடன் ஒன்பது வரிசைகள் உள்ளன ஐடி பெயர், கலைஞர், வெளியான ஆண்டு மற்றும் விற்பனைக்கான நெடுவரிசை மற்றும் நெடுவரிசைகள்:

+----+---------------------------+-----------+--------------+-------+
| id | name | artist_id | release_year | sales |
+----+---------------------------+-----------+--------------+-------+
| 1 | Abbey Road | 1 | 1969 | 14 |
| 2 | The Dark Side of the Moon | 2 | 1973 | 24 |
| 3 | Rumours | 3 | 1977 | 28 |
| 4 | Nevermind | 4 | 1991 | 17 |
| 5 | Animals | 2 | 1977 | 6 |
| 6 | Goodbye Yellow Brick Road | 5 | 1973 | 8 |
| 7 | 21 | 6 | 2011 | 25 |
| 8 | 25 | 6 | 2015 | 22 |
| 9 | Bat Out of Hell | 7 | 1977 | 28 |
+----+---------------------------+-----------+--------------+-------+

தி கலைஞர்கள் அட்டவணை இன்னும் எளிமையானது. இது ஐடி மற்றும் பெயர் நெடுவரிசைகளுடன் ஏழு வரிசைகளைக் கொண்டுள்ளது:



+----+---------------+
| id | name |
+----+---------------+
| 1 | The Beatles |
| 2 | Pink Floyd |
| 3 | Fleetwood Mac |
| 4 | Nirvana |
| 5 | Elton John |
| 6 | Adele |
| 7 | Meat Loaf |
+----+---------------+

இது போன்ற ஒரு எளிய தரவுத் தொகுப்பின் மூலம் GROUP BY இன் பல்வேறு அம்சங்களை நீங்கள் புரிந்து கொள்ள முடியும். நிச்சயமாக, ஒரு நிஜ வாழ்க்கை தரவு தொகுப்பில் இன்னும் பல வரிசைகள் இருக்கும், ஆனால் கொள்கைகள் அப்படியே உள்ளன.

ஒற்றை நெடுவரிசை மூலம் தொகுத்தல்

ஒவ்வொரு கலைஞருக்கும் எத்தனை ஆல்பங்கள் உள்ளன என்பதைக் கண்டுபிடிக்க விரும்புகிறோம் என்று சொல்லலாம். ஒரு வழக்கமான உடன் தொடங்குங்கள் தேர்ந்தெடுக்கவும் கலைஞர்_ஐடி நெடுவரிசையைப் பெறுவதற்கான வினவல்:





SELECT artist_id FROM albums

எதிர்பார்த்தபடி இது அனைத்து ஒன்பது வரிசைகளையும் வழங்குகிறது:

+-----------+
| artist_id |
+-----------+
| 1 |
| 2 |
| 3 |
| 4 |
| 2 |
| 5 |
| 6 |
| 6 |
| 7 |
+-----------+

கலைஞரின் இந்த முடிவுகளை தொகுக்க, சொற்றொடரைச் சேர்க்கவும் கலைஞர்_ஐடி மூலம் குழு :





SELECT artist_id FROM albums GROUP BY artist_id

இது பின்வரும் முடிவுகளை அளிக்கிறது:

+-----------+
| artist_id |
+-----------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
+-----------+

முடிவு தொகுப்பில் ஏழு வரிசைகள் உள்ளன, மொத்த ஒன்பதில் இருந்து குறைக்கப்பட்டது ஆல்பங்கள் மேசை. ஒவ்வொன்றும் தனித்துவமானது கலைஞர்_ஐடி ஒற்றை வரிசை உள்ளது. இறுதியாக, உண்மையான எண்ணிக்கையைப் பெற, சேர்க்கவும் எண்ணிக்கை (*) தேர்ந்தெடுக்கப்பட்ட நெடுவரிசைகளுக்கு:

SELECT artist_id, COUNT(*)
FROM albums
GROUP BY artist_id
+-----------+----------+
| artist_id | COUNT(*) |
+-----------+----------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 2 |
| 7 | 1 |
+-----------+----------+

ஐடியுடன் கூடிய கலைஞர்களுக்கான இரண்டு ஜோடி வரிசைகளின் முடிவுகள் 2 மற்றும் 6 . எங்கள் தரவுத்தளத்தில் ஒவ்வொன்றிலும் இரண்டு ஆல்பங்கள் உள்ளன.

தொடர்புடையது: ஆரம்பநிலைக்கு அத்தியாவசிய SQL கட்டளைகள் ஏமாற்று தாள்

ஒரு ஒருங்கிணைந்த செயல்பாட்டுடன் குழுவாக்கப்பட்ட தரவை எவ்வாறு அணுகுவது

நீங்கள் பயன்படுத்தியிருக்கலாம் COUNT முன்னதாக, குறிப்பாக செயல்படுகிறது எண்ணிக்கை (*) மேலே பார்த்தபடி வடிவம். இது ஒரு தொகுப்பில் முடிவுகளின் எண்ணிக்கையைப் பெறுகிறது. அட்டவணையில் மொத்த பதிவுகளின் எண்ணிக்கையைப் பெற இதைப் பயன்படுத்தலாம்:

SELECT COUNT(*) FROM albums
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+

COUNT என்பது ஒரு மொத்த செயல்பாடு. இந்த சொல் பல வரிசைகளில் இருந்து ஒரு மதிப்பாக மதிப்புகளை மொழிபெயர்க்கும் செயல்பாடுகளை குறிக்கிறது. அவை பெரும்பாலும் GROUP BY அறிக்கையுடன் இணைந்து பயன்படுத்தப்படுகின்றன.

வரிசைகளின் எண்ணிக்கையை எண்ணுவதற்கு பதிலாக, தொகுக்கப்பட்ட மதிப்புகளுக்கு ஒரு மொத்த செயல்பாட்டை நாம் பயன்படுத்தலாம்:

SELECT artist_id, SUM(sales)
FROM albums
GROUP BY artist_id
+-----------+------------+
| artist_id | SUM(sales) |
+-----------+------------+
| 1 | 14 |
| 2 | 30 |
| 3 | 28 |
| 4 | 17 |
| 5 | 8 |
| 6 | 47 |
| 7 | 28 |
+-----------+------------+

கலைஞர்கள் 2 மற்றும் 6 க்கு மேலே காட்டப்பட்டுள்ள மொத்த விற்பனை அவர்களின் பல ஆல்பங்களின் விற்பனை ஆகும்:

SELECT artist_id, sales
FROM albums
WHERE artist_id IN (2, 6)
+-----------+-------+
| artist_id | sales |
+-----------+-------+
| 2 | 24 |
| 2 | 6 |
| 6 | 25 |
| 6 | 22 |
+-----------+-------+

பல பத்திகளால் தொகுத்தல்

நீங்கள் ஒன்றுக்கு மேற்பட்ட நெடுவரிசைகளால் குழுவாக முடியும். காற்புள்ளிகளால் பிரிக்கப்பட்ட பல நெடுவரிசைகள் அல்லது வெளிப்பாடுகளைச் சேர்க்கவும். இந்த நெடுவரிசைகளின் சேர்க்கைக்கு ஏற்ப முடிவுகள் தொகுக்கப்படும்.

SELECT release_year, sales, count(*)
FROM albums
GROUP BY release_year, sales

இது பொதுவாக ஒரு நெடுவரிசையால் குழுவாக்குவதை விட அதிக முடிவுகளைத் தரும்:

+--------------+-------+----------+
| release_year | sales | count(*) |
+--------------+-------+----------+
| 1969 | 14 | 1 |
| 1973 | 24 | 1 |
| 1977 | 28 | 2 |
| 1991 | 17 | 1 |
| 1977 | 6 | 1 |
| 1973 | 8 | 1 |
| 2011 | 25 | 1 |
| 2015 | 22 | 1 |
+--------------+-------+----------+

எங்கள் சிறிய எடுத்துக்காட்டில், இரண்டு ஆல்பங்கள் ஒரே வெளியீட்டு ஆண்டு மற்றும் விற்பனை எண்ணிக்கையைக் கொண்டுள்ளன (1977 இல் 28).

பயனுள்ள ஒருங்கிணைந்த செயல்பாடுகள்

COUNT தவிர, பல செயல்பாடுகள் GROUP உடன் நன்றாக வேலை செய்கின்றன. ஒவ்வொரு செயல்பாடும் ஒவ்வொரு முடிவுக் குழுவிற்கும் சொந்தமான பதிவுகளின் அடிப்படையில் ஒரு மதிப்பை வழங்குகிறது.

  • COUNT () பொருந்தும் பதிவுகளின் மொத்த எண்ணிக்கையை அளிக்கிறது.
  • SUM () சேர்க்கப்பட்ட நெடுவரிசையில் உள்ள அனைத்து மதிப்புகளின் மொத்தத்தையும் வழங்குகிறது.
  • கொடுக்கப்பட்ட நெடுவரிசையில் மிகச்சிறிய மதிப்பை MIN () வழங்குகிறது.
  • MAX () கொடுக்கப்பட்ட நெடுவரிசையில் மிகப்பெரிய மதிப்பை வழங்குகிறது.
  • AVG () சராசரி சராசரியை வழங்குகிறது. இது SUM () / COUNT () க்கு சமம்.

GROUP பிரிவு இல்லாமல் இந்த செயல்பாடுகளையும் நீங்கள் பயன்படுத்தலாம்:

என் சுட்டி ஏன் வேலை செய்யவில்லை
SELECT AVG(sales) FROM albums
+------------+
| AVG(sales) |
+------------+
| 19.1111 |
+------------+

எங்கிருந்து உட்பிரிவு மூலம் குழு பயன்படுத்தி

ஒரு சாதாரணத் தேர்வைப் போலவே, முடிவு தொகுப்பை வடிகட்ட நீங்கள் இன்னும் இங்கே பயன்படுத்தலாம்:

SELECT artist_id, COUNT(*)
FROM albums
WHERE release_year > 1990
GROUP BY artist_id
+-----------+----------+
| artist_id | COUNT(*) |
+-----------+----------+
| 4 | 1 |
| 6 | 2 |
+-----------+----------+

1990 க்குப் பிறகு வெளியிடப்பட்ட ஆல்பங்கள் மட்டுமே இப்போது உங்களிடம் உள்ளன. GROUP BY இலிருந்து சுயாதீனமாக எங்கிருந்து உட்பிரிவை நீங்கள் பயன்படுத்தலாம்:

SELECT r.name, COUNT(*) AS albums
FROM albums l, artists r
WHERE artist_id=r.id
AND release_year > 1990
GROUP BY artist_id
+---------+--------+
| name | albums |
+---------+--------+
| Nirvana | 1 |
| Adele | 2 |
+---------+--------+

இருப்பினும், நீங்கள் ஒரு நெடுவரிசையின் அடிப்படையில் வடிகட்ட முயற்சித்தால்:

SELECT r.name, COUNT(*) AS albums
FROM albums l, artists r
WHERE artist_id=r.id
AND albums > 2
GROUP BY artist_id;

நீங்கள் ஒரு பிழையைப் பெறுவீர்கள்:

ERROR 1054 (42S22): Unknown column 'albums' in 'where clause'

ஒட்டுமொத்த தரவை அடிப்படையாகக் கொண்ட பத்திகள் எங்கே உட்பிரிவுக்கு கிடைக்காது.

HAVING உட்பிரிவைப் பயன்படுத்துதல்

எனவே, ஒரு குழுவாக நடந்த பிறகு முடிவை எவ்வாறு வடிகட்டுவது? தி இருத்தல் இந்த தேவையை உட்பிரிவு கையாள்கிறது:

SELECT r.name, COUNT(*) AS albums
FROM albums l, artists r
WHERE artist_id=r.id
GROUP BY artist_id
HAVING albums > 1;

GROUP BY க்குப் பிறகு HAVING பிரிவு வரும் என்பதை நினைவில் கொள்க. இல்லையெனில், இது அடிப்படையில் எங்கிருந்து HAVING உடன் மாற்றப்படுகிறது. முடிவுகள்:

+------------+--------+
| name | albums |
+------------+--------+
| Pink Floyd | 2 |
| Adele | 2 |
+------------+--------+

குழுவாக்குவதற்கு முன் முடிவுகளை வடிகட்ட நீங்கள் இன்னும் ஒரு நிபந்தனையைப் பயன்படுத்தலாம். இது குழுவாக்கப்பட்ட பிறகு வடிகட்டுவதற்கான HAVING உட்பிரிவுடன் இணைந்து செயல்படும்:

SELECT r.name, COUNT(*) AS albums
FROM albums l, artists r
WHERE artist_id=r.id
AND release_year > 1990
GROUP BY artist_id
HAVING albums > 1;

எங்கள் தரவுத்தளத்தில் ஒரு கலைஞர் மட்டுமே 1990 க்குப் பிறகு ஒன்றுக்கு மேற்பட்ட ஆல்பங்களை வெளியிட்டார்:

+-------+--------+
| name | albums |
+-------+--------+
| Adele | 2 |
+-------+--------+

குழு மூலம் முடிவுகளை இணைத்தல்

GROUP BY அறிக்கை SQL மொழியின் நம்பமுடியாத பயனுள்ள பகுதியாகும். இது உள்ளடக்கப் பக்கத்திற்கு, எடுத்துக்காட்டாக, தரவின் சுருக்கத் தகவலை வழங்க முடியும். அதிக அளவு தரவுகளைப் பெறுவதற்கு இது ஒரு சிறந்த மாற்றாகும். தரவுத்தளமானது இந்த கூடுதல் பணிச்சுமையை நன்றாகக் கையாளுகிறது, ஏனெனில் அதன் வடிவமைப்பே வேலைக்கு உகந்ததாக அமைகிறது.

குழுவாக்குதல் மற்றும் பல அட்டவணையில் சேருவது எப்படி என்பதை நீங்கள் புரிந்துகொண்டவுடன், தொடர்புடைய தரவுத்தளத்தின் பெரும்பாலான சக்தியை நீங்கள் பயன்படுத்த முடியும்.

பகிர் பகிர் ட்வீட் மின்னஞ்சல் SQL இணைப்புகளுடன் ஒரே நேரத்தில் பல தரவுத்தள அட்டவணைகளை வினவுவது எப்படி

வினவல்களை நெறிப்படுத்தவும், நேரத்தை மிச்சப்படுத்தவும், உங்களை ஒரு SQL சக்தி பயனராக உணரவும் SQL இணைப்புகளை எவ்வாறு பயன்படுத்துவது என்பதை அறிக.

சார்ஜர் இணைக்கப்பட்டுள்ளது ஆனால் சார்ஜ் செய்யப்படவில்லை
அடுத்து படிக்கவும் தொடர்புடைய தலைப்புகள்
  • நிரலாக்க
  • SQL
எழுத்தாளர் பற்றி பாபி ஜாக்(58 கட்டுரைகள் வெளியிடப்பட்டன)

பாபி ஒரு தொழில்நுட்ப ஆர்வலர் ஆவார், அவர் இரண்டு தசாப்தங்களாக மென்பொருள் உருவாக்குநராக பணியாற்றினார். அவர் கேமிங் மீது ஆர்வம் கொண்டவர், ஸ்விட்ச் பிளேயர் இதழில் விமர்சனம் ஆசிரியராகப் பணியாற்றுகிறார், மேலும் ஆன்லைன் வெளியீடு மற்றும் வலை மேம்பாட்டின் அனைத்து அம்சங்களிலும் மூழ்கி இருக்கிறார்.

பாபி ஜாக் இருந்து மேலும்

எங்கள் செய்திமடலுக்கு குழுசேரவும்

தொழில்நுட்ப குறிப்புகள், மதிப்புரைகள், இலவச மின் புத்தகங்கள் மற்றும் பிரத்யேக ஒப்பந்தங்களுக்கு எங்கள் செய்திமடலில் சேரவும்!

குழுசேர இங்கே சொடுக்கவும்