تفاوت GROUP BY و DISTINCT در SQL

Summarize this content to 400 words in Persian Lang
بندهای GROUP BY و DISTINCT در SQL هر دو برای مدیریت دادههای تکراری استفاده میشوند، اما اهداف متفاوتی دارند و به روشهای مختلفی کار میکنند:
متمایز
هدف: ردیف های تکراری را از مجموعه نتایج حذف می کند و فقط مقادیر منحصر به فرد را برمی گرداند.
Use Case: زمانی که می خواهید مقادیر منحصر به فرد را از یک یا چند ستون بدون هیچ گونه تجمعی واکشی کنید.
مثال:
بخش متمایز از کارمندان را انتخاب کنید.
این پرس و جو لیستی از اسامی واحدهای منحصر به فرد را از جدول کارکنان برمی گرداند.
گروه توسط
هدف: ردیف هایی را که مقادیر یکسانی در ستون های مشخص شده دارند گروه بندی می کند و امکان انجام توابع انبوه (مانند SUM، COUNT، AVG و غیره) را در این گروه ها فراهم می کند.
Use Case: زمانی که نیاز به جمع آوری داده ها و انجام محاسبات روی گروه های داده دارید.
مثال:
بخش SELECT، COUNT
از کارکنان گروه به بخش.
این پرس و جو ردیف ها را بر اساس بخش گروه بندی می کند و تعداد کارکنان هر بخش را شمارش می کند.
تفاوت های کلیدی
به طور خلاصه، زمانی که فقط نیاز به حذف ردیف های تکراری دارید، از DISTINCT استفاده کنید و زمانی که نیاز به جمع آوری داده ها بر اساس معیارهای خاص دارید، از GROUP BY استفاده کنید.
بندهای GROUP BY و DISTINCT در SQL هر دو برای مدیریت دادههای تکراری استفاده میشوند، اما اهداف متفاوتی دارند و به روشهای مختلفی کار میکنند:
- متمایز
هدف: ردیف های تکراری را از مجموعه نتایج حذف می کند و فقط مقادیر منحصر به فرد را برمی گرداند.
Use Case: زمانی که می خواهید مقادیر منحصر به فرد را از یک یا چند ستون بدون هیچ گونه تجمعی واکشی کنید.
مثال:
بخش متمایز از کارمندان را انتخاب کنید.
این پرس و جو لیستی از اسامی واحدهای منحصر به فرد را از جدول کارکنان برمی گرداند.
- گروه توسط
هدف: ردیف هایی را که مقادیر یکسانی در ستون های مشخص شده دارند گروه بندی می کند و امکان انجام توابع انبوه (مانند SUM، COUNT، AVG و غیره) را در این گروه ها فراهم می کند.
Use Case: زمانی که نیاز به جمع آوری داده ها و انجام محاسبات روی گروه های داده دارید.
مثال:
بخش SELECT، COUNT
از کارکنان گروه به بخش.
این پرس و جو ردیف ها را بر اساس بخش گروه بندی می کند و تعداد کارکنان هر بخش را شمارش می کند.
تفاوت های کلیدی
به طور خلاصه، زمانی که فقط نیاز به حذف ردیف های تکراری دارید، از DISTINCT استفاده کنید و زمانی که نیاز به جمع آوری داده ها بر اساس معیارهای خاص دارید، از GROUP BY استفاده کنید.