توضیحات
دستور 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;