Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana COUNT_BIG() Bekerja di SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menjatuhkan Batasan di SQL Server (T-SQL)

  2. Tugas SSIS untuk impor jumlah kolom yang tidak konsisten?

  3. Apakah pernyataan SQL Server tunggal atom dan konsisten?

  4. Sintaks salah di dekat ')' memanggil prosedur tersimpan dengan GETDATE

  5. SQL RANK() versus ROW_NUMBER()