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
Lepaskan: 2025-01-13 15:11:43
asal
780 orang telah melayarinya

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>
Salin selepas log masuk

Keputusan:

<code>7   3   2</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan