ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 13 · 4లో పాఠం 1కోర్సులో 49/57~15 min
మాడ్యూల్ పాఠాలు (1/4)

పరిచయం మరియు ఓవర్ నిబంధన

పరిచయం మరియు ఓవర్ క్లాజ్

డేటాను సమగ్రపరచడానికి GROUP BYని ఎలా ఉపయోగించాలో మునుపటి పాఠాలలో మేము చూశాము. అయినప్పటికీ, GROUP BY భారీ పరిమితిని కలిగి ఉంది: ఇది అడ్డు వరుసలను కుదిస్తుంది. మీరు నగరం వారీగా సమూహం చేస్తే, మీరు ఒక్కో నగరానికి ఒక వరుసను పొందుతారు మరియు వ్యక్తిగత కస్టమర్‌ల వివరాలను కోల్పోతారు.

ఇక్కడే విండో ఫంక్షన్‌లు అమలులోకి వస్తాయి. అసలు అడ్డు వరుసలను_ ఉంచుతూ మొత్తం లెక్కలను (మొత్తాలు లేదా సగటులు వంటివి) అమలు చేయడానికి అవి మిమ్మల్ని అనుమతిస్తాయి.

OVER() నిబంధన

మ్యాజిక్ కీవర్డ్ OVER(). ఇది మొత్తం ఫంక్షన్ (ఉదా. SUM, AVG, COUNT) విండో ఫంక్షన్‌గా పరిగణించబడాలని డేటాబేస్‌కు చెబుతుంది, మొత్తం ఫలితం సెట్‌లో (గ్లోబల్ "విండో") గణించబడుతుంది కానీ ప్రతి ఒక్క అడ్డు వరుసలో వర్తింపజేయబడుతుంది మరియు తిరిగి వస్తుంది.

SQL
SELECT
  order_id,
  total_amount,
  AVG(total_amount) OVER() AS global_average
FROM orders;

ఈ ఉదాహరణలో, మేము ప్రతి వ్యక్తిగత ఆర్డర్‌ను ఉంచుతాము, కానీ ప్రతి అడ్డు వరుసలో కూడా global_average నిలువు వరుస *సగటు *అన్ని_ ఆర్డర్‌లతో ఉంటుంది. ఉదాహరణకు, ఆర్డర్ సగటు నుండి ఎంత వైదొలగుతుందో కొలవడానికి చాలా ఉపయోగకరంగా ఉంటుంది!

వ్యాయామం#sql.m13.l1.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

'ఉత్పత్తులు' పట్టిక నుండి 'ధర' నిలువు వరుసను ఎంచుకోండి. మొత్తం పట్టికలో విండో ఫంక్షన్‌తో గణించబడిన గరిష్ట ధరను కలిగి ఉన్న 'global_max_price' అనే నిలువు వరుసను జోడించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

OVER()తో కలిపి MAX(ధర)ని ఉపయోగించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం#sql.m13.l1.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

'ఐడి', 'ధర'ను సంగ్రహించి, 'ఉత్పత్తుల' పట్టిక నుండి మొత్తం సగటు ధర ('గ్లోబల్_ఎవిజి')ని జోడించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

కేవలం AVG(ధర) ఓవర్()ని జోడించండి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది