Di SQL Server, COUNT_BIG()
fungsi mengembalikan jumlah item yang ditemukan dalam grup. Anda dapat menggunakannya untuk mengetahui berapa banyak baris dalam tabel atau kumpulan hasil.
Fungsi ini bekerja mirip dengan COUNT()
fungsi. Perbedaannya adalah COUNT()
mengembalikan hasilnya sebagai int , sedangkan COUNT_BIG()
mengembalikan hasilnya sebagai besar .
Oleh karena itu COUNT_BIG()
bisa berguna jika Anda mengharapkan hasil yang Anda set memiliki jumlah baris yang sangat banyak (yaitu lebih besar dari 2.147.483.647).
Sintaks
Sintaksnya seperti ini:
-- Aggregation Function Syntax COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } ) -- Analytic Function Syntax COUNT_BIG ( [ ALL ] { expression | * } ) OVER ( [] )
ALL
menerapkan fungsi agregat ke semua nilai. Ini adalah nilai default.
DISTINCT
menentukan bahwa fungsi mengembalikan jumlah nilai nonnull yang unik.
expression
adalah ekspresi dari jenis apa pun. Fungsi agregat dan subkueri tidak didukung dalam ekspresi.
*
menentukan bahwa semua baris harus dihitung dan dikembalikan, termasuk baris duplikat, dan baris yang berisi nilai nol. COUNT(*)
tidak menggunakan parameter dan tidak mendukung penggunaan DISTINCT
. Itu juga tidak memerlukan ekspresi parameter (karena tidak menggunakan informasi tentang kolom tertentu).
OVER ( [ <partition_by_clause> ]
membagi set hasil yang dihasilkan oleh FROM
klausa ke dalam partisi tempat fungsi diterapkan. Jika tidak ditentukan, fungsi tersebut akan memperlakukan semua baris hasil kueri yang ditetapkan sebagai satu grup.
Contoh 1 – Penggunaan Dasar
Berikut adalah contoh dasar yang menunjukkan cara kerja fungsi ini:
USE WideWorldImportersDW; SELECT COUNT_BIG(*) AS 'Row Count' FROM Fact.[Order];
Hasil:
+-------------+ | Row Count | |-------------| | 231412 | +-------------+
Dalam hal ini ada 231412 baris di Fact.[Order] tabel.
Dalam hal ini, saya bisa menggunakan COUNT()
untuk mengembalikan hasil yang sama, karena jumlah baris cukup kecil untuk int untuk menangani.
Contoh 2 – Kumpulan Hasil Lebih Besar
Manfaat nyata menggunakan COUNT_BIG()
adalah saat kumpulan hasil Anda jauh lebih besar dari contoh sebelumnya.
Contoh:
SELECT COUNT_BIG(*) AS 'Row Count' FROM ReallyBigTable;
Hasil:
+-----------------+ | Row Count | |-----------------| | 9147483648 | +-----------------+
Dalam hal ini, jumlah baris sangat besar sehingga int tidak akan bisa mengatasinya. Untungnya kita bisa menggunakan COUNT_BIG()
, karena mengembalikan hasilnya sebagai besar .
Contoh Lainnya
Untuk contoh lainnya, lihat Bagaimana COUNT()
Bekerja di SQL Server. Artikel tersebut memberikan lebih banyak contoh daripada yang tercantum di sini, yang semuanya juga berlaku untuk COUNT_BIG()
.
Alternatif:APPROX_COUNT_DISTINCT()
Jika Anda bekerja dengan kumpulan data yang sangat besar, Anda dapat mempertimbangkan untuk menggunakan APPROX_COUNT_DISTINCT()
bukannya COUNT_BIG(DISTINCT )
dalam beberapa kasus.
APPROX_COUNT_DISTINCT()
mengembalikan nilai perkiraan, bukan nilai yang tepat. Namun, ini dirancang agar jauh lebih responsif daripada COUNT_BIG()
, jadi ini bisa berguna saat responsivitas lebih penting daripada presisi.
Ini dirancang untuk mengembalikan nilai unik dan bukan nol, sehingga hanya akan relevan untuk waktu di mana Anda biasanya menggunakan DISTINCT
klausa dengan COUNT_BIG()
.
Perhatikan juga bahwa, pada saat penulisan APPROX_COUNT_DISTINCT()
dalam status pratinjau publik.