SQL GROUP BY 语句

సమూహ ఫంక్షన్లు (ఉదాహరణకి SUM) సాధారణంగా GROUP BY సంకేతాన్ని జోడించాలి.

GROUP BY సంకేతం

GROUP BY సంకేతం అనేది సమూహ ఫంక్షన్లను (ఉదాహరణకి SUM) జోడించడానికి ఉపయోగిస్తారు. ఒకటి లేదా అనేక నిలువులను ఆధారంగా ఫలితాన్ని వర్గీకరిస్తుంది.

SQL GROUP BY సంకేతం

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

SQL GROUP BY ఉదాహరణ

మేము ఈ "Orders" పట్టికను కలిగి ఉన్నాము:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

ఇప్పుడు, మేము ప్రతి కస్టమర్ని సంచిత విలువను (మొత్తం ఆర్డర్లను) కనుగొనడానికి కోరుకున్నాము.

మేము GROUP BY వాక్యాన్ని ఉపయోగించి కస్టమర్లను కలిపి కనుగొనడానికి చేస్తున్నాము.

మేము ఈ క్రింది SQL వాక్యాన్ని ఉపయోగిస్తున్నాము:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

ఫలితం ఈ విధంగా ఉంటుంది:

Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000

ఇది బాగా ఉందా లేదు?

ఇప్పుడు, మేము GROUP BY వాక్యాన్ని ఉపయోగించి కస్టమర్లను కలిపి కనుగొనడానికి చేస్తున్నాము.

SELECT Customer,SUM(OrderPrice) FROM Orders

ఫలితం ఈ విధంగా ఉంటుంది:

Customer SUM(OrderPrice)
Bush 5700
Carter 5700
Bush 5700
Bush 5700
Adams 5700
Carter 5700

ఈ ఫలితం మాకు అవసరమైనది కాదు.

ఎందుకు పైన ఉన్న SELECT వాక్యాన్ని వాడలేము? ఈ విధంగా వివరించబడింది: పైన ఉన్న SELECT వాక్యం రెండు కలన్లను (Customer మరియు SUM(OrderPrice)) పేర్కొంది. "SUM(OrderPrice)" ఒక ఏకరూపకం తిరిగి ఇస్తుంది ("OrderPrice" కలన్ల మొత్తం), మరియు "Customer" అనేది 6 విలువలను తిరిగి ఇస్తుంది (ప్రతి విలువ ఒక "Orders" పట్టికలోని ప్రతి పంక్తికి సంబంధించినది). కానీ, మీరు చూసినట్లు గా, GROUP BY వాక్యం ఈ సమస్యను పరిష్కరించింది.

ఒకటికి మించిన కలన్లపై GROUP BY

మేము కూడా ఒకటికి మించిన కలన్లపై GROUP BY వాక్యాన్ని వాడవచ్చు, ఇలా ఉంది:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate