PostgreSQL

PostgreSQL — گروه بندی (GROUP BY)

آخرین بروزرسانی: 1404/08/18

گروه بندی (GROUP BY)

گروه بندی (GROUP BY) ردیف های مشابه را یکی می کند. سپس خلاصه می سازد. مثل شمردن دانش آموزان هر کلاس.

GROUP BY چیست؟

این عبارت با توابع تجمعی کار می کند. تابع تجمعی یعنی محاسبه روی چند ردیف، مثل COUNT یا SUM.

  • ردیف های هم ارزش کنار هم جمع می شوند.
  • نتیجه برای هر گروه یک ردیف می سازد.
  • اغلب با COUNT، MAX، MIN، SUM، AVG می آید.

مثال: تعداد مشتریان هر کشور

می خواهیم تعداد مشتریان را برای هر کشور بشماریم.

SELECT COUNT(customer_id), country
FROM customers
GROUP BY country;

مشاهده در ادیتور

GROUP BY همراه JOIN

حالا تعداد سفارش های هر مشتری را می شماریم. ابتدا سفارش ها را به مشتری ها وصل می کنیم.

SELECT customers.customer_name, COUNT(orders.order_id)
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
GROUP BY customer_name;

مشاهده در ادیتور

گام های عملی

  1. ستون گروه را انتخاب کن.
  2. تابع تجمعی مناسب را تعیین کن.
  3. GROUP BY را بنویس و اجرا کن.

نکته: اگر نتایج چند کوئری را یکی می کنی، از یونین (UNION) استفاده کن. برای فیلتر روی گروه ها، بخش HAVING را ببین.

برای مرور سریع مفهوم گروه بندی این صفحه را نشان گذاری کن.

جمع بندی سریع

  • GROUP BY ردیف های مشابه را دسته می کند.
  • با COUNT و SUM خیلی کاربردی است.
  • پس از JOIN هم عالی کار می کند.
  • HAVING روی گروه ها فیلتر می زند.