خانه SQL Server نحوه کار با تابع MIN() در SQL Server SQL Server دستورات SQL نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۱۲ بهمن ۱۴۰۰ آخرین بروزرسانی: ۱۹ مهر ۱۴۰۲ زمان مطالعه: 20 دقیقه ۳ (۱) مقدمه در ابن مقاله، یک نمای کلی از تابع ()SQL MIN به همراه چندین مورد استفاده از آن را توضیح خواهم داد. این تابع در SQL Server تحت توابع Aggregate دستهبندی میشود. توابع مجموع (Aggregate) یک محاسبه را بر روی مجموعهای از مقادیر یک عبارت مشخص انجام میدهند و یک مقدار واحد را در خروجی خود برمیگردانند. توابع Aggregate را هر بار اجرا کنید مقدار یکسانی را برمیگردانند مگر اینکه دادههای منبع شما تغییر کند. توابع دیگری نیز در T-SQL وجود دارد که در زیر مجموعه توابع Aggregate دستهبندی میشوند. لیست این توابع عبارتاند از: AVG COUNT COUNT_BIG MAX MIN SUM VAR STRING_AGG GROUPING GROUPING_ID APPROX_COUNT_DISTINCT CHECKSUM_AGG همانطور که در بالا توضیح دادم، امروز میخواهیم در مورد دستور ()SQL MIN بیشتر بدانیم، بنابراین این مقاله فقط روی این تابع متمرکز خواهد شد. تابع ()SQL MIN حداقل یا کمترین مقدار را از عبارت مشخص شده برمیگرداند. مقادیر NULL از ستونها را نادیده میگیرد. موارد استفاده از آن را به شما نشان خواهم داد تا با کمک مثالهای ارائه شده در این مقاله، آن را از جنبههای مختلف درک کنید. دستور این تابع SQL در زیر آورده شده است. SELECT MIN (column) FROM table در ابتدای مقاله دو جدولی که برای تست ایجاد کردهام را معرفی میکنم. من دو جدول “Employee” و “Sales” دارم. جدول ” Employee ” تمام جزئیات مربوط به کارمندان را ذخیره میکند و جدول “Sales” جزئیات مربوط به فروش و فاکتور را ذخیره میکند. من از این دو جدول استفاده خواهم کرد. اگر جدولی برای آزمایش این موارد استفاده ندارید، میتوانید آنها را با مجموعهای از مقادیر ایجاد کنید. پرسوجوهای ارائه شده در این مقاله خروجی را مطابق دادههای ذخیره شده در این جداول برمیگرداند. در این موارد از دستور SQL MIN استفاده کنید در این بخش موارد استفاده از دستور MIN، از کاربرد اصلی آن تا استفاده از GROUP BY، ORDER BY، HAVING یا سایر بندها را شرح داده میشود. شما میتوانید از همه این موارد بر اساس نیاز خود استفاده کنید. سادهترین راه استفاده بیایید با استفاده ساده از آن شروع کنیم که در آن حداقل یا کمترین قیمت فاکتور پردازش شده در یک ماه خاص را بازیابی میکنم. در این مثال استفاده از تابع MIN را با استفاده از دستور SELECT به شما نشان میدهم. فرض کنید میخواهید حداقل یا کمترین مبلغ فاکتور پردازش شده در جولای ۲۰۲۱ یا هر ماه خاصی را بدانید. ستون Price هزینه هر فاکتور را در خود ذخیره میکند. SELECT MIN (price) AS [Lowest Invoice] FROM Sales WHERE InvoiceMonth = ‘July’ GO بیایید این مثال را باتوجهبه نیازهای مختلف تغییر دهیم. اگر میخواهید کمترین یا حداقل مقدار را از مجموعه ورودیهای مشخص شده بازیابی کنید، با استفاده از این تابع نیز میتوانید به آن دست پیدا کنید. در مثال بالا را فرض میکنیم که کمترین فاکتور را از یک ماه ژوئیه بازیابی کردهایم. حال، بیایید در نظر بگیریم که نیاز دیگری وجود دارد که در آن باید کمترین هزینه فاکتور را از یک سهماهه خاص یا چند ماه خاص دریافت کنیم. میتوانیم از دستور SQL IN با عبارت WHERE برای فهرست کردن تمام ماههایی که باید کمترین مقدار را محاسبه کنیم، استفاده کنیم. بیایید این الزام را در مثال خود بگنجانیم. من میخواهم کمترین فاکتور را از ماههای ژوئن و جولای دریافت کنم، بنابراین از پرسوجوی SQL بالا با چند تغییر استفاده کردم تا با کمک عبارت SQL IN همانطور که در عبارات زیر نشاندادهشده است، هر دو ماه را شامل شود. SELECT MIN (price) AS [Lowest Invoice] FROM Sales WHERE InvoiceMonth IN (‘June’, ‘July’) GO ما میتوانیم خروجی را در تصویر زیر مشاهده کنیم که در آن کمترین فاکتور ۹۹ دلار است درحالیکه در مثال بالا در جولای ۲۰۲۱، ۲۹۹ دلار بود. امیدوارم نحوه استفاده از این تابع را درک کرده باشید. شما میتوانید با استفاده از این تابع از هر ستونی، کمترین یا حداقل مقدار را دریافت کنید، حتی میتوانید با استفاده از عبارت WHERE، کمترین یا حداقل مقدار رابین عبارات مشخص شده فیلتر کنید. بخش بعدی کاربردهای آن را با دستور GROUP BY توضیح خواهد داد. از تابع SQL MIN با دستور GROUP BY استفاده کنید این تابع اغلب با دستور GROUP BY برای گروهبندی خروجی بر اساس عبارت مشخص شده استفاده میشود. سناریوهای استفاده مختلفی وجود دارد که عبارت GROUP BY در آنها مفید است. اجازه دهید یک نیاز را به شما نشان دهم که در آن میخواهید کمترین فاکتور را از هر ماه فهرست کنید. با استفاده از عبارت GROUP BY در ستون MONTH، میتوانید بهراحتی با استفاده از این تابع این کار را انجام دهید. SELECT MIN (price) AS [Lowest Invoice] FROM Sales GROUP BY InvoiceMonth GO این عبارت تمام فاکتورها را بهصورت ماهانه گروهبندی میکند و طبق تصویر زیر کمترین قیمت فاکتور را از هر ماه برمیگرداند. کوئری فوق را در کل جدول بدون قراردادن فیلتر اجرا کردم. نتیجه، خروجی دادههای هر ماه ذخیره شده در آن جدول را نشان میدهد. همچنین میتوانید لیستی از کمترین فاکتور در ماه از ماههای مشخص شده دریافت کنید. دستور زیر را اجرا کنید تا کمترین قیمت فاکتور آنها را از ماههای ژوئیه و ژوئن دریافت کنید. SELECT MIN (price) AS [Lowest Invoice] FROM Sales WHERE InvoiceMonth IN (‘June’, ‘July’) GROUP BY InvoiceMonth GO خروجی زیر جزئیات مربوط به دو ماه مشخص شده «ژوئن» و «ژوئیه» را نشان میدهد. شما میتوانید نتیجه فوق را بر اساس هر تعداد ورودی مشخص شده فیلتر کنید، همانطور که ما فقط برای ۲ ماه در اینجا تعیین کردهایم تا این نمایش را به شما نشان دهیم. استفاده از تابع SQL MIN با دستور ORDER BY همچنین میتوانیم از تابع SQL MIN با دستور ORDER BY استفاده کنیم. میتوانیم از دستور ORDER BY برای مرتبسازی خروجیهایی که با استفاده از دستور GROUP BY برگردانده میشوند، استفاده کنیم. فقط به خروجی داده شده در مثالهای بالا از دستور GROUP BY نگاه کنید. کافی است ORDER BY را در کوئری بالا اضافه میکنیم تا خروجی آن را دریافت کنیم. SELECT MIN (price) AS [Lowest Invoice] FROM Sales GROUP BY InvoiceMonth ORDER BY MIN(Price) GO خروجی کوئری بالا همان چیزی است که برای عبارت GROUP BY نشان میدهد، هر دو دارای ۴ ردیف هستند. تنها تفاوت بین هر دو خروجی این است که دستور ORDER BY خروجی را به ترتیب صعودی مرتب کرده است درحالیکه دستور GROUP BY نتایج خروجی را به ترتیب تصادفی برمیگرداند. استفاده از تابع SQL MIN با دستور HAVING بیایید جنبه دیگری از پرسوجو مثال بالا را ببینیم، با افزودن یک خط کد برای عبارت HAVING، پسوند کوئری فوق خواهد بود. در نظر بگیرید، میخواهید تمام ماههایی را که حداقل هزینه فاکتور شما در آنها کمتر از ۱۵۰ دلار پردازش نشده است، پیدا کنید. بهعبارتدیگر میتوان گفت تمامی فاکتورهای پردازش شده در آن ماه بیش از ۱۵۰ دلار بوده و حتی یک فاکتور نیز کمتر از ۱۵۰ دلار قیمتگذاری نشده است. پرسوجوی زیر تمام ماههایی را که حتی حداقل فاکتور در آن ماه از ۱۵۰ دلار بیشتر است، برمیگرداند. SELECT MIN (price) AS [Lowest Invoice] FROM Sales GROUP BY InvoiceMonth HAVING MIN(Price) > 150 GO جولای ماهی است که در آنهمه فاکتورهای بیشتر از ۱۵۰ دلار را پردازش کردهایم و کمترین فاکتور پردازش شده در آن ماه ۲۹۹ دلار بوده است.اگر میخواهید فهرست تمام ماههایی را دریافت کنید که حداقل فاکتور شما کمتر از ۱۵۰ دلار و نه بیشتر از ۱۵۰ دلار بوده است، این الزام را برعکس کنیم. بهعبارتدیگر، پرسوجو زیر تمام ماههایی را که حداقل یک فروش با کمتر از ۱۵۰ دلار داشتهایم را برمیگرداند و تمام ماههایی را که کمترین قیمت فاکتور بیشتر از ۱۵۰ دلار است را حذف میکند. SELECT MIN (price) AS [Lowest Invoice] FROM Sales GROUP BY InvoiceMonth HAVING MIN(Price)> 150 GO خروجی پرسوجوی بالا نتیجه را در تصویر زیر نشان میدهد که در آن هیچ جزئیاتی برای ماه جولای وجود ندارد. از تابع SQL MIN با سایر توابع جمعی مانند MAX، AVG، SUM استفاده کنید همچنین میتوانیم از تابع SQL MIN به همراه سایر توابع جمعی مانند MAX، AVG، SUM و غیره استفاده کنیم. MAX – این تابع بالاترین یا حداکثر مقدار را از ستون یا عبارت مشخص شده برمیگرداند. AVG– این مقدار میانگین یک ستون یا عبارت مشخص شده را برمیگرداند. SUM – این تابع مجموع تمام مقادیر یک ستون یا عبارت مشخص شده را برمیگرداند. در زیر مثالی وجود دارد که من از سایر توابع مجموع برای دریافت کمترین، بالاترین، میانگین و کل هزینه فاکتور برای هر ماه استفاده کردهام. SELECT InvoiceMonth, MIN (price) AS [Lowest Invoice], MAX(price) AS [Highest Invoice], AVG(price) AS [Average Invoice], SUM(price) AS [Total Invoice] FROM Sales GROUP BY InvoiceMonth GO خروجی در تصویر زیر نشاندادهشده است. برای درک بیشتر در مورد این توابع میتوانید خروجی آن را تجزیهوتحلیل کنید. میتوانیم با استفاده از تابع SQL MIN، کمترین مقدار، میانگین، بالاترین هزینه و مجموع همه مقادیر را در ستونهای مربوطه در تصویر زیر مشاهده کنیم.میتوانید از عبارت HAVING به همراه همه این توابع استفاده کنید. SELECT InvoiceMonth, MIN (price) AS [Lowest Invoice], MAX(price) AS [Highest Invoice], AVG(price) AS [Average Invoice], SUM(price) AS [Total Invoice] FROM Sales GROUP BY InvoiceMonth HAVING MIN(Price) > 150 GO مثال زیر کمترین، بالاترین، متوسط و کل هزینه فاکتور را در هر ماه نشان میدهد که هیچ فاکتوری کمتر از ۱۵۰ دلار بررسی نشده است. این بدان معناست که تمام فاکتورهای پردازش شده در ماه جولای بیش از ۱۵۰ دلار بوده است. از تابع MIN با دستور WHERE استفاده کنید مثالهای زیادی در بالا آوردهام که با استفاده از آنها میتوانیم نحوه استفاده از تابع SQL MIN با عبارت WHERE را بیاموزیم، اما این بخش نحوه استفاده از دستور MIN را در عبارت WHERE توضیح میدهد. دستور زیر جزئیات مربوط به فاکتوری را که با حداقل یا کمترین قیمت پردازش شده است، نمایش میدهد. SELECT name, City, Designation, InvoiceMonth, Price, Product FROM Sales AS s JOIN Employee AS e ON e.ID=s.PersonID WHERE price = (select MIN(price) from sales) GO خروجی جزئیات فاکتور مانند نام، شهر، محصول و ماهها را همراه با کمترین هزینه فاکتور نشان میدهد.در صورتی که بیش از یک فاکتور با همان مبلغ پردازش شده باشد، درخواست فوق همه فاکتورها را برمیگرداند. اجازه دهید این را با افزودن ورودی دیگری با همان قیمت فاکتور به شما نشان دهم. من یک ردیف دیگر برای ماه می با همان قیمت ۹۹ دلار اضافه کردم تا بفهمم که آیا همه نتایج را با همان کمترین قیمت دریافت خواهیم کرد یا خیر. اکنون میبینیم که هر دو جزئیات فاکتور در خروجی خود نشان داده میشوند. نتیجه گیری من یک نمای کلی و موارد استفاده مختلف از تابع SQL MIN را توضیح دادهام. این تابع برای برگرداندن حداقل یا کمترین مقدار از ستون مشخص شده در آن تابع استفاده میشود. میتوانید با نگاهکردن به مثالهای ارائه شده در بخشهای بالا، کاربردهای آن را بیاموزید. لطفاً نظرات خود را با ما در میان بگذارید. منبع https://www.sqlshack.com/understanding-the-sql-min-statement-and-its-use-cases برای بدست آوردن اطلاعات بیشتر در مورد دیگر دستورات SQL ، به مقاله زیر مراجعه کنید. چه رتبه ای میدهید؟ میانگین ۳ / ۵. از مجموع ۱ اولین نفر باش دانلود مقاله نحوه کار با تابع MIN() در SQL Server فرمت PDF 10 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 402 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول ایمان باقری دوره آموزشی کوئری نویسی در SQL Server 2.190.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ