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

PARTITION ద్వారా సమూహం చేయడం

PARTITION ద్వారా సమూహం చేయడం

ప్రతి అడ్డు వరుసలో ప్రపంచ గణనలను కలిగి ఉండటం చాలా సులభం, కానీ తరచుగా ఇది సరిపోదు. ప్రతి అడ్డు వరుసలో అసలు వివరాలను ఉంచుతూ, మేము సగటు ప్రతి వర్గం లేదా ఒక్క కస్టమర్ని గణించాలనుకోవచ్చు.

ఇక్కడే PARTITION BY OVER(...) నిబంధన వస్తుంది.

విభజన ద్వారా ఎలా పని చేస్తుంది

సంభావితంగా ఇది GROUP BY వలె ప్రవర్తిస్తుంది, కానీ ఫలితంలో అడ్డు వరుసలను కుప్పకూలడానికి బదులుగా, ఇది ఒకే అడ్డు వరుస కోసం ఫలితాన్ని గణించడానికి ఫంక్షన్ పనిచేసే డేటా యొక్క "విండో" యొక్క సరిహద్దును మాత్రమే నిర్వచిస్తుంది.

SQL
SELECT
  product_name,
  category_id,
  price,
  AVG(price) OVER(PARTITION BY category_id) AS cat_avg_price
FROM products;

ప్రతి ఉత్పత్తి అడ్డు వరుస దాని స్వంత వివరాలను ఉంచుతుంది మరియు cat_avg_price నిలువు వరుస దాని అదే వర్గం*లోని ఉత్పత్తులకు సగటు *పరిమితాన్ని చూపుతుంది.

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

'ఉత్పత్తుల' పట్టిక నుండి, 'id', 'category_id' మరియు 'ధర'ను సంగ్రహించండి. విండో ఫంక్షన్‌లను ఉపయోగించి ప్రతి 'category_id' కోసం 'ధర' SUMని గణించే 'category_total' నిలువు వరుసను జోడించండి.

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

SUM(ధర) OVER(PARTITION BY category_id)ని ఉపయోగించండి.

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

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

'సమీక్షలు' పట్టిక నుండి, 'product_id', 'rating' మరియు 'avg_product_rating' (సగటు రేటింగ్ ఉత్పత్తి ద్వారా విభజించబడింది) చూపండి. అన్ని అడ్డు వరుసలను చూపించు.

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

AVG(రేటింగ్) మరియు PARTITION BY product_idని ఉపయోగించండి. అవసరమైతే NUMERICకి ప్రసారం చేయండి.

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