ఈ ట్యుటోరియల్లో, SUM ఫంక్షన్ మరియు GROUP BY నిబంధనతో CASE స్టేట్మెంట్ను ఎలా ఉపయోగించాలో నేర్చుకుంటాము.
ఈ ట్యుటోరియల్ SQL కేస్ స్టేట్మెంట్, సమ్() ఫంక్షన్ లేదా GROUP బై క్లాజ్తో పని చేసే ప్రాథమిక అంశాలను కవర్ చేయదు. మీరు ఈ SQL లక్షణాల యొక్క ప్రాథమికాలను వెతుకుతున్నట్లయితే, మరింత తెలుసుకోవడానికి అంశాలపై మా ట్యుటోరియల్లను తనిఖీ చేయండి.
సమస్య:
మేము 'ఆర్డర్లు' అనే పట్టికను కలిగి ఉన్నామని చెప్పండి మరియు కస్టమర్ ID ద్వారా సమూహం చేయబడిన ప్రతి కస్టమర్ కోసం మేము మొత్తం అమ్మకాలను పొందాలనుకుంటున్నాము, అయితే మేము రెండు కంటే ఎక్కువ ఆర్డర్లు చేసిన కస్టమర్లకు తగ్గింపును కూడా లెక్కించాలనుకుంటున్నాము.
పట్టిక క్రింది వాటిలో చూపబడింది:
టేబుల్ ఆర్డర్లను సృష్టించండి (
ఆర్డర్_ఐడి INT ప్రైమరీ కీ,
కస్టమర్_ఐడి INT,
product_id INT,
ఆర్డర్_తేదీ DATE,
పరిమాణం INT,
ధర డెసిమల్ ( 10 , 2 )
) ;
కింది వాటిలో చూపిన విధంగా పట్టికలో నమూనా డేటాను చొప్పించండి:
ఆర్డర్లలోకి చొప్పించండి ( order_id, customer_id, product_id, order_date, పరిమాణం, ధర )
విలువలు
( 1 , 101 , 1 , '2022-04-01' , 2 , 10.99 ) ,
( 2 , 102 , 2 , '2022-04-01' , 1 , 19.99 ) ,
( 3 , 103 , 1 , '2022-04-02' , 3 , 8.99 ) ,
( 4 , 101 , 3 , '2022-04-03' , 2 , 15.99 ) ,
( 5 , 102 , 1 , '2022-04-03' , 1 , 12.99 ) ,
( 6 , 104 , 2 , '2022-04-04' , 4 , 7.99 ) ,
( 7 , 103 , 3 , '2022-04-05' , 2 , 21.99 ) ,
( 8 , 101 , 2 , '2022-04-06' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '2022-04-07' , 2 , 9.99 ) ,
( 10 , 102 , 3 , '2022-04-07' , 3 , 14.99 ) ;
ఇది క్రింది విధంగా పట్టికను సృష్టించాలి:
SQL కేస్ సమ్ మరియు గ్రూప్ బై క్లాజ్
ID ద్వారా సమూహపరచబడిన ప్రతి కస్టమర్ యొక్క మొత్తం విక్రయాలను పొందడానికి మరియు రెండు కంటే ఎక్కువ ఆర్డర్లు చేసిన కస్టమర్లకు తగ్గింపును లెక్కించడానికి, మేము కింది వాటిలో చూపిన విధంగా SUM మరియు GROUP BY నిబంధనతో కలిపి CASE స్టేట్మెంట్ను ఉపయోగించవచ్చు:
ఎంచుకోండి orders.customer_id, మొత్తం ( ఆర్డర్లు.పరిమాణం * ఆర్డర్లు.ధర * ( కేసు లెక్కించినప్పుడు ( * ) > 2 అప్పుడు 0.9 లేకపోతే 1 ముగింపు ) ) వంటి ఆర్డర్ల నుండి మొత్తం_సేల్స్;
ఇచ్చిన ఉదాహరణలో, కస్టమర్ రెండు కంటే ఎక్కువ ఆర్డర్లు ఇచ్చారో లేదో తనిఖీ చేయడానికి మేము SQL CASE స్టేట్మెంట్ని ఉపయోగిస్తాము.
ఒక కస్టమర్ రెండు కంటే ఎక్కువ ఆర్డర్లను ఉంచినట్లయితే, మేము టోటల్_సేల్స్ను 0.9తో గుణిస్తాము, ఇది 10% తగ్గింపును వర్తిస్తుంది.
ముగింపు
SUM() మరియు GROUP BY నిబంధనతో SQL CASE స్టేట్మెంట్ను ఎలా ఉపయోగించవచ్చో మేము చర్చించాము.