دوره مجازی #C (جلسه 20): Grouping , Aggregate Function , Sub Query

دسته بندی: برنامه نویسی
زمان مطالعه: ۱ دقیقه
۲۲ شهریور ۱۳۹۴

در این جلسه به مباحث پیشرفته تر و کاربردی در پرس و جوها می پردازیم. با مفاهیم Grouping , Aggregate Function , Sub Query آشنا می شویم و تمام این پرس و جوها را بر روی پایگاه داده Hypermarket که در جلسه قبل طراحی کردیم، اجرا می کنیم.

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • آشنایی با Aggregate Function ها و کاربرد آن ها
  • معرفی Count, Min, Max, Sum, AVG
  • معرفی مفهوم دسته بندی یا Grouping
  • استفاده از Aggregate Function ها در Grouping
  • معرفی کلمه کلیدی یا دستور Having
  • آشنایی با Sub Query ها و کاربرد آن ها
  • انجام چندین پرس و جوی کاربردی به منظور تثبیت مطالب تدریس شده

در جلسه ی آینده با زبان TSQL و دستورات آن و همینطور مفهوم View آشنا می شویم.

:: توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

نویسنده

جلسات دوره

نظرات کاربران

پژمان

آقای زارعی یه سئوال شخصی دارم از شما البته این سئوال رو میپرسم چون از آموزش شما لذت بردم تا اینجا. شما در این سایت برنامه ای برای آموزش برنامه نویسی وب با Asp و همچنین MVC نداری!!؟؟ چون از یک طرف و با این معلومات و افتخارات خیلی عجیبه که وب کار نمیکنید و از طرف دیگه من شبانه روز کارم شده مطالعه آموزش شما که انشالله توی ماه آینده تمامه و میخوام خودمو جمع و جور کنم برای وب و سپس موبایل اپلیکیشن ولی دوست ندارم برم سراغ سایتهای دیگه برای آموزش وب. به سبک شما عادت کردم و میخوام این لینک آموزش برای مبحث وب هم ادامه پیدا کنه. شما خودت میدونی که پروژه ها امروزه بیشتر تحت وب و موبایل هستن ولی از اونجا که میخواستم بنیادین کار کنم از صفر و از آموزش شما شروع کردم. البته دوستان زیادی پک آموزش آقای احمد جنتی رو بهم پیشنهاد کردن واسه وب نویسی و اتفاقا دیدمش و خیلی جامع هست ولی من به شخصه و با اعتقادی که به تیم آقای آوند دارم دوست دارم همینجا مطالب رو ادامه بدم در حوزه وب و Mvc ولی فرصتم کمه و آینده Asp در اینجا مشخص نیست دوستان خوب زیادی در حوزه برنامه نویسی دارم که مرتب تماس میگیرن که برم سر پروژه ولی همگی پروژه های تحت وب هستن برای ارگانهای کوچیک و بزرگ. توصیه ای اگر داری بفرما خوشحال میشم از راهنماییت استفاده کنم. ولی بیشتر خوشحال میشم اگر بگی مثلا از هفته دیگه آموزشهای تحت وبم رو اینجا آغاز میکنم . در ضمن لزومی نداره که آموزش کلاینت ساید داشته باشی اینجا فقط server side و فریم ورک Mvc باشه کافیه چون به اندازه کافی پیرامون طراحی قالب و تعامل اون با سرور مقصد اینجا مطلب هست

آرین زارعی

شما لطف دارید دوست عزیز.
من متاسفانه برنامه ای برای دوره های تحت وب ندارم. در این مساله که وب اپلیکیشن ها و موبایل اپلیکیشن ها ( به ویژه موبایل) ترند فعلی هستند، ولی من فعالیتم رو در چند سال اخیر در حوزه های دیگه ای متمرکز کردم.
مطمئن هستم اما که جناب آوند حتما برنامه های خوبی برای این مباحث دارند.
موفق باشید.

پژمان

مجددا سلام جناب زارعی
جلسات اخیر مربوط به Query ها خیلی خوب بود و ممنون بابت انرژی خوبی که صرف کرده اید. دو تا ابهام دارم:
1. در مثال آخر مربوط به میانگین خرید از بنک داران(عمده فروشان) به نظر من هیچگاه Average خرید از تک تک عمده فروشها از میانگین کل خریدها تا به امروز، بزرگتر نخواهد شد مگر در حالتی که شما برای ساب کوئری شرط سال رو بذارید که محدود تر بشه که خیلی کاربردی نیست. به نظر من شما در شرط Having کوئری اصلی باید مجموع( Sum ) خریدها به ازای هر Seller رو در نظر بگیرید تا از Avg کل خریدها بیشتر بشه. مثلا باید بگیم فروشگاه X مجموع اجناسی که به ما فروخته از مینگین کل خریدهای ما تا به امروز بیشتر بوده. البته این برداشت من هست و ممکنه اشتباه باشه که در اینصورت و عذرخواهی میکنم.
2. هر چه ساب کوئریهای شما پیچیده تر شد من بیشتر لذت بردم ولی هنوز مفهوم Left Join ، Right Join ، Full Join و Self Join رو نفهمیدم متاسفانه

آرین زارعی

اجازه بدید اول سوال دوم رو جواب بدم.
کلا مفهوم join برای این است که شما دو جدول را که از طریق یک ستون به هم متصل هستند و ارتباط دارند رو در کنار هم به طور صحیح نشون بدید. منظور این است که برای مثلا یک محصول که کلید یک گروه محصول رو در خودش داره، با این عملیات علاوه بر کلید، در نتیجه ی کوئری نام و سایر مشخصات گروه محصول مربوط بهش رو نشون بدیم. حالا با توجه به اینکه ممکنه بعضی از نمونه ها و سطر های یک جدول، با توجه طراحی و آنالیز، کلیدی برای جدول دیگه نداشته باشند یا به عبارتی در رابطه شرکت نداشته باشند، از انواع join ها استفاده میکنیم.
در باره ی سوال دوم، حقیقتا من خاطرم نیست دقیق صورت سوال رو. ولی الان که به نکته ای که میفرمایید توجه میکنم، فکر کنم گفته ی شما نادرست نباشه. ممکن هست من اشتباه کرده باشم و جای sum و avg رو اشتباه نوشته باشم. اجازه بدید بررسی کنم تا به اطلاعتون برسونم.

آرین زارعی

فکر کنم جواب رو دادم در یک پست دیگه. حالا نمی دونم خودتون بودید یا خیر… ولی در کل به مسیر زیر که ارسال می کنم برید و مشکلتون حل میشه:
tools-options-designers-Uncheck the “Prevent saving ….” -end

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل