தொகுதி பாடங்கள் (2/4)
பகிர்வு மூலம் குழுவாக்குதல்
பகிர்வு மூலம் குழுவாக்குதல்
ஒவ்வொரு வரிசையிலும் உலகளாவிய கணக்கீடுகள் இருப்பது எளிது, ஆனால் பெரும்பாலும் இது போதாது. ஒவ்வொரு வரிசையிலும் அசல் விவரத்தை வைத்துக்கொண்டு, சராசரி ஒரு வகை அல்லது ஒரு வாடிக்கையாளருக்கு கணக்கிட விரும்பலாம்.
இங்குதான் 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' மற்றும் 'price' ஆகியவற்றைப் பிரித்தெடுக்கவும். சாளர செயல்பாடுகளைப் பயன்படுத்தி ஒவ்வொரு 'வகை_ஐடி'க்கும் 'விலை'யின் SUM கணக்கிடும் 'category_total' நெடுவரிசையைச் சேர்க்கவும்.
குறிப்பைக் காட்டு
SUM(விலை) OVER(PARTITION BY category_id) ஐப் பயன்படுத்தவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
'விமர்சனங்கள்' அட்டவணையில் இருந்து, 'product_id', 'rating' மற்றும் 'avg_product_rating' (தயாரிப்பு மூலம் பிரிக்கப்பட்ட சராசரி மதிப்பீடு) ஆகியவற்றைக் காட்டு. அனைத்து வரிசைகளையும் காட்டு.
குறிப்பைக் காட்டு
AVG(மதிப்பீடு) மற்றும் PARTITION BY product_id ஐப் பயன்படுத்தவும். தேவைப்பட்டால் NUMERIC க்கு அனுப்பவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்