మాడ్యూల్ పాఠాలు (2/4)
PARTITION ద్వారా సమూహం చేయడం
PARTITION ద్వారా సమూహం చేయడం
ప్రతి అడ్డు వరుసలో ప్రపంచ గణనలను కలిగి ఉండటం చాలా సులభం, కానీ తరచుగా ఇది సరిపోదు. ప్రతి అడ్డు వరుసలో అసలు వివరాలను ఉంచుతూ, మేము సగటు ప్రతి వర్గం లేదా ఒక్క కస్టమర్ని గణించాలనుకోవచ్చు.
ఇక్కడే PARTITION BY OVER(...) నిబంధన వస్తుంది.
విభజన ద్వారా ఎలా పని చేస్తుంది
సంభావితంగా ఇది GROUP BY వలె ప్రవర్తిస్తుంది, కానీ ఫలితంలో అడ్డు వరుసలను కుప్పకూలడానికి బదులుగా, ఇది ఒకే అడ్డు వరుస కోసం ఫలితాన్ని గణించడానికి ఫంక్షన్ పనిచేసే డేటా యొక్క "విండో" యొక్క సరిహద్దును మాత్రమే నిర్వచిస్తుంది.
SELECT
product_name,
category_id,
price,
AVG(price) OVER(PARTITION BY category_id) AS cat_avg_price
FROM products;ప్రతి ఉత్పత్తి అడ్డు వరుస దాని స్వంత వివరాలను ఉంచుతుంది మరియు cat_avg_price నిలువు వరుస దాని అదే వర్గం*లోని ఉత్పత్తులకు సగటు *పరిమితాన్ని చూపుతుంది.
'ఉత్పత్తుల' పట్టిక నుండి, 'id', 'category_id' మరియు 'ధర'ను సంగ్రహించండి. విండో ఫంక్షన్లను ఉపయోగించి ప్రతి 'category_id' కోసం 'ధర' SUMని గణించే 'category_total' నిలువు వరుసను జోడించండి.
సూచనను చూపించు
SUM(ధర) OVER(PARTITION BY category_id)ని ఉపయోగించండి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
'సమీక్షలు' పట్టిక నుండి, 'product_id', 'rating' మరియు 'avg_product_rating' (సగటు రేటింగ్ ఉత్పత్తి ద్వారా విభజించబడింది) చూపండి. అన్ని అడ్డు వరుసలను చూపించు.
సూచనను చూపించు
AVG(రేటింగ్) మరియు PARTITION BY product_idని ఉపయోగించండి. అవసరమైతే NUMERICకి ప్రసారం చేయండి.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది