خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
استفاده از تابع ()COUNT_BIG در SQL Server
تابع COUNT_BIG همانند تابع COUNT می باشد با این تفاوت که خروجی تابع COUNT از نوع INT و خروجی تابع COUNT_BIG از نوع bigint می باشد و بدیهی است که دامنه پوشش داده شده توسط تابع COUNT_BIG به مراتب بزرگتر از COUNT می باشد.
بنابراین اگر Result set شما دارای تعداد زیادی رکورد است (یعنی بزرگتر از 2،147،483،647) ، COUNT_BIG می تواند به کمک شما بیاید. لطفا به Syntax های کلی این تابع دقت کنید:
ALL بصورت پیشفرض بوده و جمع تعداد تمامی رکوردهای برگشتی می باشد. DISTINCT هم مشخص می کند که این تابع تعداد مقادیر unique و غیر Null را برگرداند.
به معنی شمردن تمامی رکوردها ائم از Null و حتی تکراری است. (*)COUNT پارامتری نداشته و از DISTINCT هم پشتیبانی نمی کند.
ساده ترین استفاده ای که از این تابع می توان کرد در مثال زیر نشان داده شده است:
از آنجایی که تعداد ردیف هایی برگشتی معادل 231412 رکورد می باشد، پس به جای COUNT_BIG حتی می توانستیم از COUNT استفاده کنیم چون این تعداد در بازه COUNT هم می باشد.
در مثال زیر، تعداد رکوردها آنقدر زیاد است که خارج از محدود COUNT می باشد و باید از COUNT_BIG استفاده شود.
تعداد خروجی در این کوئری بسیار بزرگتر از محدوده COUNT می باشد در این شرایط حتما باید COUNT_BIG استفاده شود.
بنابراین اگر Result set شما دارای تعداد زیادی رکورد است (یعنی بزرگتر از 2،147،483،647) ، COUNT_BIG می تواند به کمک شما بیاید. لطفا به Syntax های کلی این تابع دقت کنید:
-- Aggregation Function Syntax
COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } )
-- Analytic Function Syntax
COUNT_BIG ( [ ALL ] { expression | * } ) OVER ( [ ] )
ALL بصورت پیشفرض بوده و جمع تعداد تمامی رکوردهای برگشتی می باشد. DISTINCT هم مشخص می کند که این تابع تعداد مقادیر unique و غیر Null را برگرداند.
به معنی شمردن تمامی رکوردها ائم از Null و حتی تکراری است. (*)COUNT پارامتری نداشته و از DISTINCT هم پشتیبانی نمی کند.
ساده ترین استفاده ای که از این تابع می توان کرد در مثال زیر نشان داده شده است:
USE WideWorldImportersDW;
SELECT COUNT_BIG(*) AS 'Row Count'
FROM Fact.[Order];
+-------------+
| Row Count |
|-------------|
| 231412 |
+-------------+
از آنجایی که تعداد ردیف هایی برگشتی معادل 231412 رکورد می باشد، پس به جای COUNT_BIG حتی می توانستیم از COUNT استفاده کنیم چون این تعداد در بازه COUNT هم می باشد.
در مثال زیر، تعداد رکوردها آنقدر زیاد است که خارج از محدود COUNT می باشد و باید از COUNT_BIG استفاده شود.
SELECT COUNT_BIG(*) AS 'Row Count'
FROM ReallyBigTable;
+-----------------+
| Row Count |
|-----------------|
| 9147483648 |
+-----------------+
تعداد خروجی در این کوئری بسیار بزرگتر از محدوده COUNT می باشد در این شرایط حتما باید COUNT_BIG استفاده شود.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: