ఉదాహరణలో SUM(), AVG(), COUNT(), MAX మరియు MIN() వంటి ఫంక్షన్లు ఉంటాయి. అయితే, SQLలో మొత్తం ఫంక్షన్ల గురించి మీరు గమనించే ఒక విషయం ఏమిటంటే అవి సంఖ్యాపరమైన కార్యకలాపాలకు అనుగుణంగా ఉంటాయి.
కానీ స్ట్రింగ్ విలువలతో వ్యవహరించే మొత్తం ఫంక్షన్లు ఉన్నాయని మీకు తెలుసా? ఈ ట్యుటోరియల్లో, ఈ ఫంక్షన్లు, అవి ఎలా పని చేస్తాయి మరియు వాటిని మన డేటాబేస్లలో ఎలా ఉపయోగించవచ్చో చూద్దాం.
గమనిక: ఈ పోస్ట్లో చర్చించబడిన చాలా ఫంక్షన్లు ప్రామాణిక SQLలో భాగం కాకపోవడం మంచి గమనిక. ఫలితంగా, అవి PostgreSQL, SQL సర్వర్ మొదలైన వివిధ డేటాబేస్ ఇంజిన్ల పొడిగింపు.
స్ట్రింగ్ మొత్తం విధులు అంటే ఏమిటి?
స్ట్రింగ్ అగ్రిగేట్ ఫంక్షన్లు అనేది ఒక సమూహం లేదా అడ్డు వరుసలలోని స్ట్రింగ్ల సెట్పై అగ్రిగేషన్ కార్యకలాపాలను నిర్వహించి, ఒకే ఫలితాన్ని అందించే ఫంక్షన్ల సమితి.
ఒక నిర్దిష్ట నిలువు వరుస ఆధారంగా వరుసలను సమూహపరచడానికి మరియు ప్రతి సమూహంలోని స్ట్రింగ్లను సమగ్రపరచడానికి మేము ప్రధానంగా ఈ ఫంక్షన్లను GROUP BY నిబంధనతో ఉపయోగిస్తాము.
కొన్ని సాధారణ స్ట్రింగ్ మొత్తం విధులు:
- GROUP_CONCAT() – PostgreSQL మరియు MySQL
- STRING_AGG – SQL సర్వర్
- ARRAY_AGG – PostgreSQL
- లిస్టాగ్ - ఒరాకిల్
ప్రతి ఫంక్షన్ మరియు అది అందించే వాటిని అన్వేషిద్దాం.
GROUP_CONCAT()
GROUP_CONCAT() ఫంక్షన్కు PostgreSQL మరియు MySQL డేటాబేస్లు మద్దతు ఇస్తున్నాయి. ఇది బహుళ అడ్డు వరుసల నుండి ఒకే స్ట్రింగ్లో విలువలను కలపడానికి అనుమతిస్తుంది.
మనకు ఈ క్రింది విధంగా “ఉద్యోగుల” పట్టిక ఉందని అనుకుందాం:
టేబుల్ ఉద్యోగులను సృష్టించండి (Employee_id INT AUTO_INCREMENT ప్రైమరీ కీ,
మొదటి_పేరు VARCHAR(50),
చివరి_పేరు VARCHAR(50),
శాఖ వర్చర్(50)
);
ఉద్యోగులను ఇన్సర్ట్ చేయండి (మొదటి_పేరు, చివరి_పేరు, విభాగం) VALUES
('ఆలిస్', 'స్మిత్', 'మానవ వనరులు'),
('బాబ్', 'జాన్సన్', 'మార్కెటింగ్'),
('చార్లీ', 'విల్సన్', 'ఫైనాన్స్'),
('డేవిడ్', 'బ్రౌన్', 'సేల్స్'),
('ఎవా', 'డేవిస్', 'ఇంజనీరింగ్');
అవుట్పుట్:
మేము ఉద్యోగి యొక్క పూర్తి పేరును మొదటి పేరును తీసుకొని, చివరి పేరుతో సంగ్రహించాలనుకుంటే, కింది ఉదాహరణలో ప్రదర్శించిన విధంగా మేము GROUP_CONCAT() ఫంక్షన్ని ఉపయోగించవచ్చు:
ఎంచుకోండిశాఖ,
GROUP_CONCAT(మొదటి_పేరు, ' ', చివరి_పేరు) పూర్తి_పేరు వలె
నుండి
ఉద్యోగులు
సమూహం ద్వారా
శాఖ;
ఈ సందర్భంలో, మేము 'మొదటి_పేరు' మరియు 'చివరి_పేరు' నిలువు వరుసల నుండి స్ట్రింగ్లను సంగ్రహించడానికి మరియు పేర్లకు ఖాళీని జోడించడానికి ఖాళీ స్ట్రింగ్ని ఉపయోగిస్తాము.
ఇది ప్రతి విభాగంలోని ఉద్యోగుల జాబితాను కలిగి ఉంటుంది.
STRING_AGG
ఈ ఫంక్షన్ GROUP_CONCAT() ఫంక్షన్ని పోలి ఉంటుంది కానీ ఇది SQL సర్వర్ డేటాబేస్లో మాత్రమే మద్దతు ఇస్తుంది.
ఉదాహరణ వినియోగం క్రింది విధంగా ఉంది:
ఎంచుకోండిశాఖ,
STRING_AGG(మొదటి_పేరు, చివరి_పేరు, ' ') పూర్తి_పేరు వలె
నుండి
ఉద్యోగులు
సమూహం ద్వారా
శాఖ;
ఇది నిర్దేశిత నిలువు వరుసలపై స్పేస్గా డీలిమిటర్గా స్ట్రింగ్ సంయోగాన్ని నిర్వహిస్తుంది.
ARRAY_AGG
ARRAY_AGG ఫంక్షన్ PostgreSQL డేటాబేస్లో మాత్రమే అందుబాటులో ఉంది. ఇది విలువలను ఒకే శ్రేణిలో సమగ్రపరచడానికి అనుమతిస్తుంది.
ఒక ఉదాహరణ క్రింది విధంగా ఉంది:
ఎంచుకోండిశాఖ,
ARRAY_AGG(మొదటి_పేరు) AS ఉద్యోగుల_జాబితా
నుండి
ఉద్యోగులు
సమూహం ద్వారా
శాఖ;
ఇది ఉద్యోగి పేరును శ్రేణిగా సమగ్రపరచాలి.
లిస్టాగ్()
LISTTAGG() ఫంక్షన్ ఒరాకిల్ డేటాబేస్లో మాత్రమే అందుబాటులో ఉంది. ఇది నిర్దేశిత డీలిమిటర్తో విలువలను ఒకే స్ట్రింగ్లో కలపడానికి అనుమతిస్తుంది.
ఒక ఉదాహరణ క్రింది విధంగా ఉంది:
డిపార్ట్మెంట్, LISTTAGG(మొదటి_పేరు, చివరి_పేరు, ' ') గ్రూప్లో (ఆర్డర్ బై ఉద్యోగి_పేరు ASC) ఉద్యోగులుగా ఎంచుకోండిఉద్యోగుల నుండి
విభాగం వారీగా సమూహం;
ఇది ఉద్యోగుల పేర్లు మరియు నిర్దేశిత డీలిమిటర్ను కలిపేస్తుంది.
ముగింపు
ఈ ట్యుటోరియల్లో, స్ట్రింగ్ విలువల జాబితాను అందించడానికి మరియు ఒకే ఫలిత స్ట్రింగ్ విలువలో ఆపరేషన్ చేయడానికి మాకు అనుమతించే స్ట్రింగ్ అగ్రిగేట్ ఫంక్షన్ల గురించి మేము తెలుసుకున్నాము.