Rumah >pangkalan data >tutorial mysql >COUNT(*) vs. COUNT(Lajur): Apakah Perbezaan dalam Pengiraan Baris SQL?

COUNT(*) vs. COUNT(Lajur): Apakah Perbezaan dalam Pengiraan Baris SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-13 15:11:43771semak imbas

COUNT(*) vs. COUNT(Column): What's the Difference in SQL Row Counting?

*Perbezaan antara COUNT() dan COUNT(Lajur) dalam SQL**

Dalam SQL, fungsi agregat COUNT(*) dan COUNT(lajur) masing-masing menyediakan mekanisme berbeza untuk mengira baris dan lajur data dalam jadual.

COUNT() Mengira semua baris dalam jadual yang ditentukan, tidak termasuk nilai NULL. Ini bermakna COUNT() mengembalikan jumlah bilangan baris bukan NULL, tanpa mengira lajur yang mengandungi data.

Sebaliknya, COUNT(lajur) mengira bilangan baris di mana lajur yang ditentukan bukan NULL. Ini membolehkan pengiraan terpilih bagi nilai bukan NULL dalam lajur tertentu.

*Gantikan COUNT(lajur)** dengan COUNT(

)

Menggantikan semua kejadian COUNT(nama_lajur) dalam pertanyaan dengan COUNT(*) akan mempunyai kesan berikut:

  • Set hasil akan mengandungi baris tambahan yang mengandungi nilai NULL untuk nama_lajur dan kiraan yang mewakili bilangan nilai NULL dalam lajur.

Demo

Untuk menggambarkan perbezaan ini, mari kita hasilkan semula senario yang digariskan dalam soalan asal:

<code class="language-sql">create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)

select count(*),count(id),count(id2)
from #bla</code>

Keputusan:

<code>7   3   2</code>

Dalam contoh ini, lajur COUNT(*) mengira kesemua tujuh baris, termasuk dua baris di mana kedua-dua id dan id2 adalah NULL. Lajur COUNT(id) hanya mengira tiga baris dengan id bukan NULL, manakala COUNT(id2) mengira dua baris dengan id2 bukan NULL.

Atas ialah kandungan terperinci COUNT(*) vs. COUNT(Lajur): Apakah Perbezaan dalam Pengiraan Baris SQL?. 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