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
మరియు ఈ ప్రశ్న యొక్క ఫలితం:
id | పేరు | కిరాయి_సంవత్సరం | చేరుతున్న తేదీ |
---|---|---|---|
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
మరియు ఈ ప్రశ్న యొక్క ఫలితం:
id | పేరు | కిరాయి_సంవత్సరం | కిరాయి_నెల | చేరుతున్న తేదీ |
---|---|---|---|---|
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