آموزش دستور group by در 2019 sql server و دستور Having (بخش اول)
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آشنایی کامل با دستورات Group By و Having (بخش اول):
در این جلسه میخواهیم مبحث گروه بندی دادهها را باهم مررو کنیم. تا اینجای کار توانستیم selectهای متعددی را بنویسیم و دادهها خود را واکشی کنیم. اما همیشه به این شکل بود که دادهها به صورت سطرهای کنارهم و بدون هیچ وابستگی یا گروه بندی نمایش داده میشدند. اما از این جلسه میخواهیم یاد بگیریم اگر نیاز شد دادههایمان را گروه بندی کنیم. خیلی اوقات بسته بندی یا بخش بندی کردن به ما کمک دهد یک سری محاسبات خیلی خوب انجام دهیم. برای گروه بندی 5 دستور داریم:
(Group By, Having , Grouping Sets, .Rollup, Cube)
در این جلسه با دستورات Group By و Having آشنا میشوید.
GROUP BY اغلب در زمان استفاده از توابع MIN, SUM, AVG و… در SQL، برای گروه بندی نتایج استفاده می شود. برای گذاشتن شرط روی مقادیر تجمیعی از Having استفاده می کنیم.
در جلسات گذشته با توابع تجمعی آشنا شدید و گفتیم که میتوانیم مقدار یک ستون را در نظر بگیریم و یکسری توابع مثل sum, min, max, avg, count و countbig را اعمال کنیم. با استفاده از دستور groupby میتوانیم گروه بندی را انجام دهیم.
در مثال زیر از تابع sum برای جمع ستون price و از تابع count برای تعداد هر کالا استفاده میکنیم و براساس گروه محصولات گروه بندی میکنیم و جمع و تعداد هر گروه را نمایش میدهیم.
در حالتی که از group by استفاده میکنیم فیلدهایی که مقابل select قرار میگیرند یا باید آن فیلدها هم مقابل group by باشند یا درون توابع تجمعی باشند.
در مثال زیر کد گروه کالاهایی را برمیگرداند که مجموع قیمتهایشان بیشتر از 100هزار تومان است. برای اعمال شرط روی توابع تجمعی از دستور Having استفاده میکنیم و برای شرط گذاشتن روی یک فیلد از دستور Where استفاده میکنیم.
در این مثال کد گروه کالاهایی را نمایش میدهد که تعداد موجودی آنها بیشتر از 2تا باشد.
در این مثال میخواهیم علاوه بر اینکه کد گروه کالا را برمیگرداند نام گروه محصولات را هم نمایش دهد. برای اینکار از دستور inner join استفاده میکنیم که دو جدول را به یگدیگر پیوند بزند تا نام گروه محصولات را نمایش دهد.
امیدواریم که این آموزش، برای شما دوستان درسمنی عزیز مفید باشد، درصورت سوال و یا مشکل میتوانید به انجمن پرسش و پاسخ مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید.
امید آنکه بیش از پیش موفق و مؤید باشید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.