Perbezaan antara COUNT(1) dan COUNT(*) dalam Oracle ialah: COUNT(1) mengabaikan nilai nol dan hanya mengira baris bukan kosong (*) mengira semua baris, termasuk nilai nol; pilih bergantung pada: sama ada Terdapat nilai nol, keutamaan untuk prestasi atau konsistensi.
Perbezaan antara COUNT(1) dan COUNT(*) dalam Oracle
Dalam Oracle, COUNT(1) dan COUNT(*) adalah kedua-dua fungsi agregat yang digunakan untuk mengira bilangan rekod dalam jadual , tetapi Terdapat perbezaan yang ketara antara keduanya.
KIRA(1)
- Hanya kira baris dengan nilai bukan nol.
- Ia menghalang pengiraan salah apabila terdapat nilai nol dalam jadual.
- Laksanakan lebih cepat sedikit daripada COUNT(*) kerana ia mengabaikan nilai nol.
KIRA(*)
- Mengira semua baris, termasuk yang mempunyai nilai nol.
- Ia mengembalikan kiraan tepat walaupun terdapat nilai nol dalam jadual.
- Memandangkan ia termasuk nilai nol, ia mungkin dilaksanakan lebih perlahan daripada COUNT(1).
Yang mana satu untuk dipilih?
Memilih COUNT(1) atau COUNT(*) bergantung pada faktor berikut:
-
Kehadiran nilai nol: Jika nilai nol mungkin dalam jadual, gunakan COUNT(1) untuk mengelakkan pengiraan palsu.
-
Prestasi: Jika kelajuan adalah kritikal dan anda pasti tiada nilai nol dalam jadual, anda boleh menggunakan COUNT(1).
-
Ketekalan: Jika anda mahukan kiraan yang konsisten merentas semua baris, termasuk nilai nol, anda harus menggunakan COUNT(*). . 1 ) mengabaikan nilai NULL.
Jika anda menanyakan jadual ini menggunakan COUNT(*), ia akan mengembalikan hasil berikut:
<code>| id | name | age |
|---|---|---|
| 1 | John | 20 |
| 2 | NULL | 25 |
| 3 | Mary | 22 |</code>
Salin selepas log masuk
Ini kerana COUNT(*) mengandungi nilai NULL. Atas ialah kandungan terperinci Perbezaan antara count1 dan count* dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!