به دست آوردن تعداد (COUNT)، ماکزیمم (MAX)، مینیمم (MIN)، مجموع (SUM) و میانگین (AVG)، بر اساس تشکیل گروه های (Group) مختلف که بر اساس یکسان بودن در مقدار یک ستون (Column) ایجاد می شوند، با عبارت GROUP BY ، در SQL

فرض کنید که یک جدول (Table) با نام kelidestan_table داریم که دارای ستونی (Column) با نام city می باشد.

همچنین در جدول (Table) مورد نظر، ردیف های (Row) مختلفی وجود دارد که مقادیری مثل shiraz و tehran و yazd برای ستون city از آنها ثبت شده است.

اکنون می خواهیم یک query بنویسیم که بر اساس مقادیر ستون city ، متوجه شویم که مثلا چه تعداد ردیف (Row) با مقدار shiraz برای ستون city و چه تعداد ردیف (Row) با مقدار tehran برای ستون city و چه تعداد ردیف (Row) با مقدار yazd برای ستون city ، وجود دارد.

یعنی گروه هایی (Group) بر اساس یکسان بودن مقدار در ستون city تشکیل شود (مثلا همه ردیف هایی که دارای مقدار shiraz در ستون city هستند، در یک گروه قرار می گیرند) و سپس تعداد آنها شمارش شده (با عبارت COUNT) و برگردانده شود (همچنین مقدار ستون city را هم بر می گردانیم تا بدانیم که تعداد مربوط به چه مقداری است).

برای این منظور، query زیر را می نویسیم :

در query بالا، با عبارت GROUP BY city تعیین کرده ایم که گروه بندی باید بر اساس یکسان بودن مقدار در ستون city باشد و همچنین باید دو مقدار COUNT(city) و city برگردانده شود.

به عنوان مثال، اگر در جدول مورد نظر، 4 ردیف با مقدار shiraz برای ستون city و 3 ردیف با مقدار tehran برای ستون city و 2 ردیف با مقدار yazd برای ستون city داشته باشیم، آنگاه نتایج زیر برگردانده می شوند :

مثال بالا را برای عبارت COUNT که می تواند برای به دست آوردن تعداد هر گروه (Group) به کار رود، ذکر کردیم.

عبارت های دیگری مثل MAX برای به دست آوردن ماکزیمم (Maximum) هر گروه، عبارت MIN برای به دست آوردن مینیمم (Minimum) هر گروه، عبارت SUM برای به دست آوردن مجموع مقادیر هر گروه و عبارت AVG برای به دست آوردن میانگین (Average) هر گروه، نیز می توانند به همراه عبارت GROUP BY به کار روند.

برای این منظور، باید هر یک از این عبارت ها، به جای عبارت COUNT در query قبلی نوشته شوند، یعنی به صورت زیر (البته در اینجا ستون city دارای مقادیر عددی نیست، ولی فرض می کنیم که اگر دارای مقادیر عددی می بود، آنگاه query های زیر را نوشته و اجرا می کردیم) :

چون ستون city دارای مقادیر عددی نیست، می توانیم عبارت ها را برای یک ستون (Column) دارای مقادیر عددی (مثلا با نام column_1) بنویسیم (یعنی عبارت های COUNT و MAX و ... را برای هر ستونی از جدول می توانید بنویسید و نیازی نیست که حتما برای ستونی نوشته شود که گروه بندی بر اساس آن می باشد. این مورد، بستگی به نوع نیاز شما برای فراخوانی از جدول دارد). یعنی به صورت زیر :

نویسنده علیرضا گلمکانی
شماره کلید 26400
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)