Rumah  >  Artikel  >  pangkalan data  >  Perbezaan antara count1 dan count* dalam oracle

Perbezaan antara count1 dan count* dalam oracle

下次还敢
下次还敢asal
2024-04-30 06:12:15585semak imbas

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 count1 dan count* dalam oracle

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>
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn