חישוב מספר הרשומות המוחזרות על-ידי שאילתה.
תחביר
Count(expr)
מציין המיקום expr מייצג ביטוי מחרוזת המזהה את השדה אשר מכיל את הנתונים שברצונך למנות, או ביטוי המבצע חישוב באמצעות הנתונים בשדה. אופרנדים תחת expr יכולים לכלול שם של שדה בטבלה או פונקציה (אשר יכולה להיות פנימית או מוגדרת על-ידי המשתמש, אך לא פונקציות צבירה אחרות שלSQL). באפשרותך למנות כל סוג של נתונים, כולל טקסט.
הערות
ניתן להשתמש בפונקציה Count כדי למנות את מספר הרשומות בשאילתה המשמשת כבסיס. לדוגמה, באפשרותך להשתמש בפונקציה Count כדי למנות את מספר ההזמנות שנשלחו אל מדינה מסויימת.
למרות שהערך expr יכול לבצע חישוב על שדה, הפונקציה Count פשוט מונה את מספר הרשומות. אין משמעות לערכים המאוחסנים ברשומות.
הפונקציה Count אינה מונה רשומות המכילות שדות עם הערך Null אלא אם הערך expr הוא התו הכללי כוכבית (*). אם אתה משתמש בסימן כוכבית, הפונקציה Count מחשבת את המספר הכולל של רשומות, כולל אלה המכילות שדות עם הערך Null. הפונקציה Count(*) מהירה במידה ניכרת מהפונקציה Count([Column Name]). אל תקיף את הסימן כוכבית בסימני מרכאות (' '). הדוגמה הבאה מחשבת את מספר הרשומות בטבלה Orders:
SELECT Count(*)
AS TotalOrders FROM Orders;
אם expr מזהה שדות מרובים, הפונקציה Count מונה רשומה רק אם לפחות אחד השדות אינו מכיל את הערך Null. אם כל השדות שצויינו מכילים את הערך Null, הרשומה אינה נכללת בספירה. הפרד את שמות השדות באמצעות הסימן &. הדוגמה הבאה מראה כיצד באפשרותך להגביל את הספירה לרשומות בהן הערך בשדות ShippedDate או Freight אינו Null:
SELECT
Count('ShippedDate & Freight')
AS [Not Null] FROM Orders;
באפשרותך להשתמש בפונקציה Count בביטוי שאילתה. ניתן להשתמש בביטוי זה גם במאפיין SQL של אובייקט QueryDef או בעת יצירת אובייקט Recordset המבוסס על שאילתת SQL.
דוגמה לפונקציה Count
דוגמה זו עושה שימוש בטבלה Orders כדי לחשב את מספר ההזמנות שנשלחו אל בריטניה.
הדוגמה שולחת קריאה אל הפרוצדורה EnumFields, אותה באפשרותך למצוא בדוגמה למשפט SELECT.
Sub CountX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Calculate the number of orders shipped
' to the United Kingdom.
Set rst = dbs.OpenRecordset("SELECT" _
& " Count (ShipCountry)" _
& " AS [UK Orders] FROM Orders" _
& " WHERE ShipCountry = 'UK';")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 25
dbs.Close
End Sub
|