توضیحات

دستور group by برای جمع‌آوری مجموعه‌ای از رکوردها دسته‌بندی رکوردها بر اساس یک ستون یا چند ستون می‌باشد.

دستور

دستور group by در pl/sql به این شکل است:

SELECT expression1, expression2, ... expression_n, 
       aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
پارامترهای دستور

expression1, expression2, expression_n: ستون‌هایی هستند که در توابع تجمعی نمی‌آیند و بر اساس این ستون‌ها رکوردها دسته‌بندی می‌شوند و توابع بر روی آنها اعمال می‌شود.
aggregate_function: توابعی مانند min، max، avg، count می‌توانند در این قسمت قرار گیرند.
Tables: جداولی است که شما انتظار دارید داده‌ها از آن بازیابی شود.
WHERE conditions: شرط اختیاری است. شرطی است که باید رکوردها موقع بازیابی آن را رعایت کنند.

 

 


مثال

• در مثال زیر رکوردها بر اساس ستون product گروه‌بندی می‌شوند و جمع Sale آنها محاسبه می‌شود.

SELECT product, SUM(sale) AS "Total sales"
FROM order_details
GROUP BY product;

• در مثال زیر رکوردها بر اساس ستون category گروه‌بندی می‌شوند تعداد رکوردها در هر گروه محاسبه می‌شود.

SELECT category, COUNT(*) AS "Number of suppliers"
FROM suppliers
WHERE available_products > 45
GROUP BY category;