خانه SQL Server دستور COUNT در SQL Server همراه با مثال های کاربردی و آشنایی با محدودیت ها SQL Server دستورات SQL نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۰۶ خرداد ۱۴۰۳ آخرین بروزرسانی: ۲۷ خرداد ۱۴۰۳ زمان مطالعه: 9 دقیقه ۵ (۴) دستور COUNT در SQL Server یکی از پرکاربردترین دستورات SQL است. یکی از مزایای استفاده از برنامههای مدیریت دیتابیس رابطهای، امکان استفاده از توابع و دستورات مختلف است. در برنامه SQL Server دستوری برای شمارش تعداد سطرهای جداول وجود دارد. با اجرای این دستور، تعداد سطرها بهصورت یک عدد صحیح برگردانده میشود. در این مطلب، با نحوه استفاده از دستور COUNT و همچنین با شرایط و محدودیتهای استفاده از آن در قالب مثالهای عملی، آشنا خواهیم شد. دستور COUNT در SQL Server چیست؟ دستور COUNT درواقع نوعی از تابع Aggregate است. در SQL Server نوعی از توابع به نام Aggregate وجود دارند که از آنها برای انجام محاسبات استفاده میشود. تابع Aggregate برروی مجموعهای از مقادیر اجرا شده و یک مقدار واحد را برمیگرداند. ازجمله مهمترین توابع Aggregate در SQL Server، میتوان به توابع AVG (برای محاسبه میانگین)، تابع MAX (برای محاسبه ماکزیمم)، تابع MIN (برای محاسبه مینیمم)، تابع SUM (برای محاسبه جمع) و درنهایت، تابع COUNT که موضوع موردبحث ما در این مطلب است، اشاره کرد. در مقاله تابع Aggregate در SQL Server ، این تابع را بهطور کامل بررسی کردهایم که برای آشنایی بیشتر، پیشنهاد میکنیم آن را مطالعه کنید. دستور COUNT در SQL Server از سال ۲۰۰۸ به این پلتفرم اضافه شده است. همچنین در پلتفرمهایی مثل آژور مایکروسافت (Microsoft Azure که یک پلتفرم ابری برای مدیریت و میزبانی از دیتابیس است) و مایکروسافت فابریک (Microsoft Fabric که جزو ابزارهای هوش تجاری یا همان Business Intelligence است) هم از این دستور پشتیبانی میشود. وظیفه دستور COUNT در SQL Server ، بازگرداندن تعداد آیتمهای موجود در یک مجموعه است. این تابع، تنها یک پارامتر را قبول میکند که میتواند یک ستون یا یک شرط باشد. مقدار بازگشتی توسط دستور COUNT، یک عدد صحیح (از نوع INT) است. اگر هم این تعداد برابر صفر باشد، مقدار Null بازگردانده میشود. دستور COUNT را به سه صورت، میتوان نوشت: اگر دستور COUNT بهصورت: COUNT(*) نوشته شود، تعداد تمام رکوردها (تعداد سطرهای جدول) بازگردانده میشود. اگر دستور COUNT بهصورت: COUNT(ALL expression) نوشته شود، تعداد رکوردهایی که شرط نوشتهشده را برآورده کنند و در عین حال، مقدار آنها برابر Null نباشد، بازگردانده میشود. اگر دستور COUNT بهصورت: COUNT(DISTINCT expression) نوشته شود، تعداد رکوردهایی که شرط نوشتهشده را برآورده کنند و در عین حال، نه تکراری باشند و نه Null ، بازگردانده میشود. تا اینجا با دستور COUNT در SQL Server و نحوه نوشتن آن آشنا شدیم. اما در چه مواقعی میتوان از این دستور استفاده کرد و مهمترین کاربردهای آن چیست؟ کاربرد دستور COUNT در SQL Server همانطور که گفتیم دستور COUNT یک وظیفه را برعهده دارد و آن هم چیزی نیست جز، شمارش! شمارش رکوردها، یک وظیفه باارزش و بسیار حیاتی است که به ما در مدیریت بهتر جداول رابطهای کمک میکند. مهمترین کاربردهای دستور COUNT در SQL Server شامل موارد زیر است: اطمینان از یکپارچگی دادهها (Data Integrity) بررسی کیفیت دادهها (Data Quality) گزارشگیری (Reporting) علاوهبراینها، این دستور میتواند هنگام استفاده از عبارتی مثل GROUP BY هم بسیار مفید باشد. مثلاً اگر دیتابیسی از فیلمهای روی پرده یک سینما داشته باشیم، میتوانیم با ترکیب GROUP BY و COUNT، تعداد مخاطبان هر فیلم را از جداول دیتابیس، استخراج کنیم. برای این که بهصورت عملی و ملموس با کاربردهای دستور COUNT در SQL Server آشنا شویم، در ادامه، تعدادی مثال را باهم مرور میکنیم. مثال های کاربردی برای استفاده از دستور COUNT در SQL Server با بررسی مثالهای پیش رو، عملکرد دستور COUNT در SQL Server را بهتر درک خواهیم کرد. برای پیادهسازی این مثالها، جدولی حاوی مقادیر زیر را ایجاد کردهایم: در این جدول، که نام آن را «products» گذاشتهایم، ستونهایی بهعنوان: کد محصول (product_code) نام محصول (product_name) نوع محصول (product_line) فروشنده (product_vendor) قیمت محصول (buy_price) وجود دارد. باهم مثالهایی از اعمال دستور COUNT روی این جدول را مشاهده میکنیم. مثال اول: شمارش تعداد سطرهای جدول اولین مثال از کاربرد دستور COUNT در SQL Server ، به سادهترین کاربرد آن، یعنی شمارش تمام سطرهای یک جدول، اشاره دارد. برای این کار، کوئری زیر را پیادهسازی میکنیم: SELECT COUNT(product_code) FROM products; همانطور که میبینید، کافی است تا دستور COUNT را روی یک ستون از جدول Products، اعمال کنیم. اجرای کوئری بالا، نتیجه زیر را بهدنبال خواهد داشت: این نتیجه، تعداد تمامی سطرهای جدول Products را نشان میدهد. البته باید بدانید که ما این دستور را روی ستونی که همه سطرهای آن حاوی مقادیر غیر Null بود، اجرا کردیم. اگر همین دستور را روی ستون «product_vendor» که حاوی یک مقدار Null است، اجرا کنیم: SELECT COUNT(product_vendor) FROM products; نتیجه زیر نشان داده میشود: اما راهی برای شمارش تعداد سطرهای جدول بدون نیاز به مشخصکردن یک ستون بهعنوان پارامتر دستور COUNT در SQL Server وجود دارد؟ بله! کافی است کوئری زیر را اجرا کنیم: SELECT COUNT(*) FROM products; اجرای این کوئری، عدد ۵ را بهعنوان تعداد سطرهای جدول، برمیگرداند. مثال دوم: شمارش رکوردهای غیرتکراری با استفاده از عبارت DISTINCT دومین کاربرد دستور COUNT در SQL Server ، توانایی بازگرداندن تعداد سطرهای غیرتکراری است. همانطور که در جدول Products مشاهده میکنید، ستون product_line شامل مقادیر تکراری است. میتوانیم با اضافهکردن عبارت DISTINCT قبل از نام ستون، تعداد سطرهای غیرتکراری آن ستون را بهدست آوریم. این کار را با استفاده از کوئری زیر انجام میدهیم: SELECT COUNT(DISTINCT product_line) FROM products; با اجرای کوئری بالا، نتیجه زیر بهدست میآید: همانطور که میبینید، عدد ۲ بازگردانده شد؛ چراکه تنها دو مورد غیرتکراری در ستون product_line وجود دارد. مثال سوم: شمارش رکوردهایی که باید یک شرط خاص را برآورده کنند دستور COUNT در SQL Server را میتوان با WHERE ترکیب کرده و یک شرط هم برای شمارش سطرها مشخص کرد. فرض کنیم که میخواهیم تعداد محصولاتی که در دسته «Motorcycles» است را بهدست آوریم. برای این کار، کوئری زیر را مینویسیم: SELECT COUNT(product_code) FROM products WHERE product_line = ‘Motorcycles’; نتیجه اجرای کوئری بالا بهصورت زیر است: همانطور که میبینید، عدد ۳ بهعنوان نتیجه برگردانده شده است؛ چراکه تنها سه محصول از نوع Motorcycles در جدول Products وجود دارد. مثال چهار: شمارش رکوردهای موجود در یک گروه یکی از جاهایی که دستور COUNT در SQL Server میتواند بسیار کاربردی باشد، هنگام استفاده از دستور GROUP BY است. جدول products را درنظر بگیرید. فرض کنید که میخواهیم بدانیم چه تعدادی از هرنوع محصول را در اختیار داریم. این کار را میتوانیم با اجرای کوئری زیر انجام دهیم: SELECT product_line, COUNT(product_code) FROM products GROUP BY product_line; اجرای کوئری بالا، با نتیجه زیر همراه است: در این کوئری، SQL Server ابتدا تمام مقادیر غیرتکراری موجود در ستون اول T یعنی product_line T را محاسبه میکند تا بدانیم چندنوع یا دسته محصول داریم. سپس، محصولات متعلق به هر دسته، شمرده میشوند. مثال پنج: شرط گذاری به کمک دستور HAVING و ترکیب آن با دستور COUNT در SQL Server دستور HAVING یک دستور کاربردی برای تعیین شرط در دستور GROUP BY است. بنابراین، بد نیست تا مثالی از کاربرد این دستور را هم درکنار دستور COUNT ببینیم. فرض کنید میخواهیم دستههایی از محصولات را که بیش از دو محصول در آن دسته وجود دارد، شناسایی کنیم. برای این کار، کوئری زیر را مینویسیم: SELECT product_line, COUNT(product_code) FROM products GROUP BY product_line HAVING COUNT(product_code)>2; نتیجه اجرای کوئری بالا، بهصورت زیر است: این نتیجه، نوع Motorcycles و تعداد محصولاتی که از این نوع هستند را بازگردانده است. مثال ششم: استفاده از دستور COUNT در SQL Server در کنار دستور ORDER BY آخرین مثال خود را به استفاده از دستور COUNT درکنار دستور ORDER BY اختصاص میدهیم. از دستور ORDER BY برای مرتبکردن خروجی بهصورت صعودی، استفاده میشود. فرض کنید که میخواهیم تعداد محصولات متعلق به هر دسته را مشخص کرده (یعنی چند محصول متعلق به دسته Motorcycles و چند محصول متعلق به دسته Classic Cars است) و سپس دسته ها را براساس تعداد محصولات متعلق به آنها مرتب کنیم. برای این کار، کوئری زیر را مینویسیم: SELECT product_line, COUNT(product_code) FROM products ORDER BY COUNT(product_line); نتیجه اجرای کوئری بالا، بهصورت زیر است: همانطور که میبینید، اول دسته Classic Cars و سپس دسته Motorcycles در خروجی آمده است (ترتیب صعودی). در جلوی هرکدام، تعداد محصولات متعلق به آن دسته نیز آورده شده است. محدودیت های استفاده از دستور COUNT در SQL Server اما استفاده از دستور COUNT ممکن است با محدودیتهایی نیز همراه باشد. جدولی که در مثالهای قبل معرفی کردیم را درنظر بگیرید. فرض کنید بخواهیم جزئیات محصولاتی که جزو یک دستهبندی با بیش از سه محصول هستند را بازیابی کنیم. ممکن است با خود فکر کنید که میتوان با استفاده از دستور COUNT در عبارت WHERE، شرط لازم برای بازیابی این دادهها را نوشت؛ چیزی شبیه کوئری زیر: SELECT * FROM products WHERE COUNT(product_line)>=3; همهچیز درست بهنظر میرسد. اما با اجرای این کوئری، خطای زیر نمایش داده میشود: بهنظر شما علت چیست؟ علت این است که شما نمیتوانید از دستور COUNT در SQL Server بهطور مستقیم بهعنوان شرط دستور WHERE استفاده کنید. استفاده از دستورات GROUP BY و HAVING نیز بهتنهایی نمیتواند ما را به هدفمان برساند و تمامی جزئیات محصولات موردنظرمان را نشان دهد. درعوض، شما در باید در اینجا، از یک کوئری تو در تو استفاده کنید: SELECT * FROM products WHERE product_line in (SELECT product_line FROM products GROUP BY product_line HAVING COUNT(product_code)>=3); خروجی کوئری بالا، بهصورت زیر است: بنابراین این محدودیت استفاده از دستور COUNT را نیز درنظر بگیرید. جمع بندی : آشنایی با دستور COUNT در SQL Server در این مطلب، درباره دستور COUNT در SQL Server صحبت کردیم و گفتیم که وظیفه این دستور، شمارش تعداد سطرهای یک جدول است. با مثالهای کاربردی، نحوه استفاده از این دستور را در کنار عباراتی مثل دستور GROUP BY، دستور ORDER BY و دستور HAVING، نشان دادیم. بهتر است برای درک بهتر این دستور و نحوه استفاده از آن، همین الان دست به کار شوید و مثالهای گفته شده در این مطلب را پیادهسازی کنید؛ چراکه با درک نحوه عملکرد دستور COUNT ، میتوانید از آن در کاربردهای مختلفی (شامل گزارشگیری، تحلیل داده و…) استفاده کنید. همچنین پیشنهاد میکنیم برای آشنایی بیشتر با سایر دستورات، مقاله جامع معرفی پرکاربردترین دستورات SQL Server را مطالعه نمایید. چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۴ اولین نفر باش دانلود مقاله دستور COUNT در SQL Server همراه با مثال های کاربردی و آشنایی با محدودیت ها فرمت PDF 12 صفحه حجم 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 چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ