গ্রহণযোগ্য উত্তর দ্বারা ধারণাটি খুব ভালভাবে ব্যাখ্যা করা হয়েছে, তবে আমি দেখতে পেয়েছি যে যত বেশি উদাহরণ দেখবে ততই ততই ডুবে যায় Here এখানে একটি বর্ধিত উদাহরণ রয়েছে:
1) বস বলেছেন "ব্র্যান্ড অনুসারে আমাদের স্টকগুলিতে থাকা আইটেমগুলির সংখ্যা আমাকে পান"
আপনি বলেছেন : "কোনও সমস্যা নেই"
SELECT
BRAND
,COUNT(ITEM_ID)
FROM
ITEMS
GROUP BY
BRAND;
ফলাফল:
+--------------+---------------+
| Brand | Count |
+--------------+---------------+
| H&M | 50 |
+--------------+---------------+
| Hugo Boss | 100 |
+--------------+---------------+
| No brand | 22 |
+--------------+---------------+
2) বস বলছেন "এখন আমাকে সমস্ত আইটেমের একটি তালিকা আনুন, তাদের ব্র্যান্ড এবং সম্পর্কিত ব্র্যান্ডের আইটেমের সংখ্যা সহ"
আপনি চেষ্টা করতে পারেন:
SELECT
ITEM_NR
,BRAND
,COUNT(ITEM_ID)
FROM
ITEMS
GROUP BY
BRAND;
তবে আপনি পাবেন:
ORA-00979: not a GROUP BY expression
এখানেই OVER (PARTITION BY BRAND)
আসে:
SELECT
ITEM_NR
,BRAND
,COUNT(ITEM_ID) OVER (PARTITION BY BRAND)
FROM
ITEMS;
যার অর্থ:
COUNT(ITEM_ID)
- আইটেমের সংখ্যা পান
OVER
- সারিগুলির ওপরে
(PARTITION BY BRAND)
- যে একই ব্র্যান্ড আছে
এবং ফলাফল:
+--------------+---------------+----------+
| Items | Brand | Count() |
+--------------+---------------+----------+
| Item 1 | Hugo Boss | 100 |
+--------------+---------------+----------+
| Item 2 | Hugo Boss | 100 |
+--------------+---------------+----------+
| Item 3 | No brand | 22 |
+--------------+---------------+----------+
| Item 4 | No brand | 22 |
+--------------+---------------+----------+
| Item 5 | H&M | 50 |
+--------------+---------------+----------+
ইত্যাদি ...