بعد از مدتها يك آموزش جديد:
Group By :
یکی از مواردی که کاربرد زیادی هم در sql داره گروه بندی داده ها هست.
زمانی که از توابع aggregate استفاده میکنید، تمام داده های جدول رو به عنوان نتیجه بر میگردونه. با استفاده از group by میتونید بر اساس یک مقدار یکتا در فیلد، داده ها رو گروه بندی کنید.
شکل کلی دستور:
کد:
SELECT column, aggregate function(column) FROM table GROUP BY column
فرض کنید در جدول inventory ارزش تمام کالاها رو به تفکیک هر کالا میخواین:
کد:
select name,sum(cost) from inventory group by name
در کد بالا اگر در جدول چند کالا با یک نام وجود داشته باشه، query که نوشته شده مجموع فیلد cost مربوط به کالاهای همنام رو به عنوان نتیجه برمیگردونه.
نکته: فیلدی که در جلوی group by نوشته میشه باید در قسمت select هم باشه.
Having :
زمانی که داده ها رو گروه بندی میکنید، اگر نیاز به دستورات شرطی باشه نمیشه از where استفاده کرد و باید از عبارت having استفاده کنید.
شکل کلی دستور:
کد:
SELECT column, aggregate function (column) FROM table
GROUP BY column
HAVING aggregate function (column) condition value
فرض کنید در جدول inventory ارزش تمام کالاها رو به تفکیک هر کالا و کالاهایی که ارزش کلی آنها بیشتر از 25000 هست:
کد:
select name,sum(cost) from inventory group by name having sum(cost)>=25000
تا به زودی...
پیروز باشید