تابع COUNT() در SQL برای شمارش تعداد سطرهایی که با یک شرط خاص مطابقت دارند، استفاده می‌شود. این تابع به شما کمک می‌کند تا تعداد داده‌ها را در جدول یا ستون‌های خاصی بدست بیاورید.

ساختار کلی تابع COUNT()

برای استفاده از COUNT()، ساختار کلی به این صورت است:

SELECT COUNT(*)
FROM table_name;

در اینجا * به معنای شمارش تمام سطرها است.

مثال ساده: شمارش تمام سطرها در جدول

فرض کنید شما یک جدول به نام Products دارید و می‌خواهید تعداد تمام محصولات را بشمارید. اینگونه می‌توانید از تابع COUNT() استفاده کنید:

SELECT COUNT(*)
FROM Products;

شمارش تعداد سطرهای یک ستون خاص 📊

اگر بخواهید تعداد سطرها را برای یک ستون خاص شمارش کنید، می‌توانید نام آن ستون را به جای * قرار دهید. مثلاً:

SELECT COUNT(ProductName)
FROM Products;

در اینجا تعداد سطرهایی که ستون ProductName مقدار NULL ندارد، شمارش می‌شود. یعنی اگر در بعضی سطرها اسم محصول وجود نداشته باشد، آن‌ها شمارش نمی‌شوند.

نکته: تفاوت بین COUNT(*) و COUNT(column_name)

  • COUNT(*): تعداد تمام سطرها را می‌شمارد، حتی اگر ستون‌ها خالی باشند.
  • COUNT(column_name): فقط سطرهایی که مقدار NULL ندارند را می‌شمارد.

اضافه کردن شرط با WHERE 🔍

شما می‌توانید با اضافه کردن WHERE شرط‌های خاصی برای شمارش تعیین کنید. مثلاً، فرض کنید می‌خواهید تعداد محصولاتی که قیمتشان بیشتر از 20 است را بشمارید:

SELECT COUNT(ProductID)
FROM Products
WHERE Price > 20;

نادیده گرفتن مقادیر تکراری با DISTINCT 🔄

اگر بخواهید مقادیر تکراری یک ستون را نادیده بگیرید و فقط مقادیر منحصر به فرد شمارش شوند، می‌توانید از DISTINCT استفاده کنید. برای مثال، اگر بخواهید تعداد قیمت‌های مختلف محصولات را شمارش کنید، می‌توانید از کد زیر استفاده کنید:

SELECT COUNT(DISTINCT Price)
FROM Products;

این کد تنها قیمت‌های منحصر به فرد محصولات را شمارش می‌کند و قیمت‌های تکراری را نادیده می‌گیرد.

استفاده از Alias برای نامگذاری نتایج 📑

شما می‌توانید برای نتایج شمارش، یک نام (Alias) تعیین کنید تا خواناتر باشد. برای مثال، اگر بخواهید تعداد سطرها را با نام “Number of records” نمایش دهید، می‌توانید اینطور عمل کنید:

SELECT COUNT(*) AS [Number of records]
FROM Products;

استفاده از COUNT() با GROUP BY 📊

اگر بخواهید تعداد سطرها را بر اساس یک دسته‌بندی خاص بشمارید، می‌توانید از GROUP BY استفاده کنید. مثلاً اگر می‌خواهید تعداد محصولات را برای هر دسته‌بندی (Category) شمارش کنید، این کد را استفاده کنید:

SELECT COUNT(*) AS [Number of records], CategoryID
FROM Products
GROUP BY CategoryID;

در اینجا تعداد محصولات برای هر دسته‌بندی شمارش می‌شود.

تمرین عملی 🚀

  1. تمرین 1: تعداد محصولات با قیمت کمتر از 15 را شمارش کنید.

  2. تمرین 2: تعداد دسته‌بندی‌های مختلف در جدول محصولات را شمارش کنید.

  3. تمرین 3: تعداد محصولاتی که نامشان از کلمه “Syrup” در نامشان استفاده می‌کنند را پیدا کنید.

نکات مهم:

  • استفاده از COUNT(*) همه سطرها را می‌شمارد.
  • استفاده از COUNT(column_name) تنها سطرهایی را می‌شمارد که مقدار NULL نداشته باشند.
  • با استفاده از DISTINCT می‌توانید مقادیر تکراری را نادیده بگیرید.
  • GROUP BY به شما کمک می‌کند که تعداد سطرها را بر اساس یک گروه خاص شمارش کنید.