Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
COUNT fungsi
COUNTFungsi menghitung baris yang ditentukan oleh ekspresi.
COUNTFungsi ini memiliki variasi berikut.
COUNT(*) menghitung semua baris dalam tabel target apakah mereka termasuk nol atau tidak.
COUNT(ekspresi) menghitung jumlah baris dengan NULL non-nilai dalam kolom atau ekspresi tertentu.
COUNT(DISTINCTekspresi) menghitung jumlah NULL non-nilai yang berbeda dalam kolom atau ekspresi.
APPROXIMATECOUNTDISTINCTmendekati jumlah NULL non-nilai yang berbeda dalam kolom atau ekspresi.
Sintaks
COUNT( * | expression )
COUNT ( [ DISTINCT | ALL ] expression )
APPROXIMATE COUNT ( DISTINCT expression )
Argumen
- ekspresi
-
Kolom target atau ekspresi tempat fungsi beroperasi. COUNTFungsi ini mendukung semua tipe data argumen.
- DISTINCT | ALL
-
Dengan argumenDISTINCT, fungsi menghilangkan semua nilai duplikat dari ekspresi yang ditentukan sebelum melakukan penghitungan. Dengan argumenALL, fungsi mempertahankan semua nilai duplikat dari ekspresi untuk menghitung. ALLadalah default.
- APPROXIMATE
-
Ketika digunakan denganAPPROXIMATE, COUNT DISTINCT fungsi menggunakan HyperLogLog algoritma untuk memperkirakan jumlah NULL non-nilai yang berbeda dalam kolom atau ekspresi. Kueri yang menggunakan APPROXIMATE kata kunci berjalan lebih cepat, dengan kesalahan relatif rendah sekitar 2%. Perkiraan dijamin untuk kueri yang mengembalikan sejumlah besar nilai berbeda, dalam jutaan atau lebih per kueri, atau per grup, jika ada klausa grup demi kelompok. Untuk set nilai berbeda yang lebih kecil, dalam ribuan, perkiraan mungkin lebih lambat daripada hitungan yang tepat. APPROXIMATEhanya dapat digunakan dengan COUNTDISTINCT.
Jenis pengembalian
COUNTFungsi kembaliBIGINT.
Contoh
Hitung semua pengguna dari negara bagian Florida:
select count(*) from users where state='FL';
count ------- 510
Hitung semua nama acara dari EVENT tabel:
select count(eventname) from event;
count ------- 8798
Hitung semua nama acara dari EVENT tabel:
select count(all eventname) from event;
count ------- 8798
Hitung semua tempat unik IDs dari EVENT meja:
select count(distinct venueid) as venues from event;
venues -------- 204
Hitung berapa kali setiap penjual mencantumkan batch lebih dari empat tiket untuk dijual. Kelompokkan hasil berdasarkan ID penjual:
select count(*), sellerid from listing where numtickets > 4 group by sellerid order by 1 desc, 2;
count | sellerid ------+---------- 12 | 6386 11 | 17304 11 | 20123 11 | 25428 ...
Contoh berikut membandingkan nilai kembali dan waktu eksekusi untuk COUNT dan APPROXIMATECOUNT.
select count(distinct pricepaid) from sales;
count ------- 4528 Time: 48.048 ms
select approximate count(distinct pricepaid) from sales;
count ------- 4553 Time: 21.728 ms