స్టేట్మెంట్ ద్వారా SQL గ్రూప్ గురించి మీరు తెలుసుకోవలసిన ప్రతిదీ

స్టేట్మెంట్ ద్వారా SQL గ్రూప్ గురించి మీరు తెలుసుకోవలసిన ప్రతిదీ

రిలేషనల్ డేటాబేస్‌ల యొక్క అధిక శక్తి డేటాను ఫిల్టర్ చేయడం మరియు పట్టికలను కలపడం ద్వారా వస్తుంది. అందుకే మేము ఆ సంబంధాలకు మొదటి స్థానంలో ప్రాతినిధ్యం వహిస్తాము. కానీ ఆధునిక డేటాబేస్ వ్యవస్థలు మరొక విలువైన టెక్నిక్‌ను అందిస్తాయి: గ్రూపింగ్.





డేటాబేస్ నుండి సారాంశ సమాచారాన్ని సేకరించేందుకు గ్రూపింగ్ మిమ్మల్ని అనుమతిస్తుంది. ఉపయోగకరమైన గణాంక డేటాను సృష్టించడానికి ఫలితాలను కలపడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది. సమూహాల జాబితా వంటి సాధారణ కేసుల కోసం కోడ్ రాయడం నుండి సమూహపరచడం మిమ్మల్ని రక్షిస్తుంది. మరియు ఇది మరింత సమర్థవంతమైన వ్యవస్థలను తయారు చేయగలదు.





క్లాజ్ ద్వారా గ్రూప్ ఏమి చేస్తుంది?

గ్రూప్ ద్వారా, పేరు సూచించినట్లుగా, సమూహాలు చిన్న సెట్‌లోకి వస్తాయి. ఫలితాలు సమూహం చేయబడిన కాలమ్ యొక్క ప్రతి విభిన్న విలువకు ఒక అడ్డు వరుసను కలిగి ఉంటాయి. కొన్ని సాధారణ విలువలను పంచుకునే వరుసలతో కొన్ని నమూనా డేటాను చూడటం ద్వారా మేము దాని వినియోగాన్ని చూపవచ్చు.





నెట్‌ఫ్లిక్స్ యాప్ ఐఫోన్‌లో పనిచేయడం లేదు

రికార్డ్ ఆల్బమ్‌లకు ప్రాతినిధ్యం వహిస్తున్న రెండు టేబుల్స్‌తో కిందివి చాలా సులభమైన డేటాబేస్. మీరు అటువంటి డేటాబేస్ ద్వారా సెటప్ చేయవచ్చు ప్రాథమిక స్కీమా రాయడం మీరు ఎంచుకున్న డేటాబేస్ సిస్టమ్ కోసం. ది ఆల్బమ్‌లు పట్టిక ప్రాథమిక కీతో తొమ్మిది వరుసలను కలిగి ఉంటుంది id పేరు, కళాకారుడు, విడుదలైన సంవత్సరం మరియు అమ్మకాల కోసం కాలమ్ మరియు నిలువు వరుసలు:

+----+---------------------------+-----------+--------------+-------+
| 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 |
+----+---------------+

మీరు సాధారణ డేటా సెట్‌తో గ్రూప్ బై యొక్క వివిధ అంశాలను అర్థం చేసుకోవచ్చు. వాస్తవానికి, నిజ జీవిత డేటా సెట్‌లో చాలా ఎక్కువ వరుసలు ఉంటాయి, కానీ సూత్రాలు అలాగే ఉంటాయి.

సింగిల్ కాలమ్ ద్వారా గ్రూపింగ్

ప్రతి ఆర్టిస్ట్ కోసం మన దగ్గర ఎన్ని ఆల్బమ్‌లు ఉన్నాయో తెలుసుకోవాలని అనుకుందాం. విలక్షణమైన వాటితో ప్రారంభించండి ఎంచుకోండి కళాకారుడు_ఐడి కాలమ్‌ని పొందడానికి ప్రశ్న:





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 () కు సమానం.

మీరు ఈ ఫంక్షన్‌లను గ్రూప్ క్లాజ్ లేకుండా కూడా ఉపయోగించవచ్చు:

ల్యాప్‌టాప్‌కు మైక్రోఫోన్‌ను ఎలా కనెక్ట్ చేయాలి
SELECT AVG(sales) FROM albums
+------------+
| AVG(sales) |
+------------+
| 19.1111 |
+------------+

ఎక్కడి క్లాజ్‌తో గ్రూప్‌ని ఉపయోగించడం

ఒక సాధారణ SELECT మాదిరిగానే, ఫలిత సెట్‌ను ఫిల్టర్ చేయడానికి మీరు ఇప్పటికీ ఇక్కడ ఉపయోగించవచ్చు:

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

ఇప్పుడు మీ వద్ద 1990 తర్వాత విడుదలైన ఆల్బమ్‌లు మాత్రమే ఉన్నాయి, వీటిని ఆర్టిస్ట్ ద్వారా గ్రూప్ చేసారు. మీరు గ్రూప్ బై నుండి స్వతంత్రంగా ఎక్కడ క్లాజ్‌తో జాయిన్ అయినా ఉపయోగించవచ్చు:

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;

HAVING నిబంధన GROUP BY తర్వాత వస్తుందని గమనించండి. లేకపోతే, ఇది తప్పనిసరిగా HAVING తో WHERE యొక్క సాధారణ భర్తీ. ఫలితాలు:

+------------+--------+
| 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 కథనాలు ప్రచురించబడ్డాయి)

రెండు దశాబ్దాల పాటు సాఫ్ట్‌వేర్ డెవలపర్‌గా పనిచేసిన బాబీ ఒక టెక్నాలజీ astత్సాహికుడు. అతను గేమింగ్‌పై మక్కువ కలిగి, స్విచ్ ప్లేయర్ మ్యాగజైన్‌లో రివ్యూస్ ఎడిటర్‌గా పని చేస్తున్నాడు మరియు ఆన్‌లైన్ పబ్లిషింగ్ & వెబ్ డెవలప్‌మెంట్ యొక్క అన్ని అంశాలలో మునిగిపోయాడు.

బాబీ జాక్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి