MySQL Count Matching Records Dengan COUNT

Mysql Count Matching Records With Count



Redundansi data berlaku kerana banyak sebab. Beberapa tugas rumit yang harus anda hadapi ketika bekerja dengan sistem pangkalan data adalah berusaha mencari nilai pendua. Untuk tujuan ini, Kami akan menggunakan kaedah agregat COUNT (). Kaedah COUNT () mengembalikan jumlah baris yang berada dalam jadual tertentu. Fungsi COUNT () membolehkan anda menjumlahkan semua baris atau hanya baris yang sepadan dengan keadaan yang ditentukan. Dalam panduan ini, Anda akan mengetahui cara mengenal pasti nilai pendua untuk satu atau mungkin lebih lajur MySQL menggunakan COUNT (). Kaedah COUNT () mempunyai tiga jenis berikut:

  • COUNT (*)
  • COUNT (ungkapan)
  • COUNT (ungkapan DISTINCT)

Tentukan bahawa anda telah memasang MySQL pada sistem anda. Buka shell klien baris arahan MySQL dan masukkan kata laluan anda untuk meneruskan. Kami akan melihat beberapa contoh untuk menghitung nilai yang sesuai dengan kaedah COUNT ().









Kami mempunyai jadual 'sosial' dalam skema 'data' kami. Mari kita periksa rekodnya melalui pertanyaan berikut.



>> PILIH * DARI data .Sosial;





COUNT MySQL (*)

Kaedah COUNT (*) digunakan untuk mengira bilangan baris yang berada di dalam jadual atau mengira bilangan baris mengikut keadaan yang diberikan. Untuk memeriksa jumlah baris dalam jadual, ‘sosial’ cuba pertanyaan di bawah. Kami mempunyai 15 baris dalam jadual berdasarkan hasilnya.

>> PILIH BANYAK (*) DARI data .Sosial;



Lihat kaedah COUNT (*) sambil menentukan beberapa syarat. Kita harus mengambil bilangan baris di mana nama pengguna sama dengan ‘Mustafa’. Anda dapat melihat bahawa kami hanya mempunyai 4 rekod untuk nama tertentu ini.

>> PILIH BANYAK (*) DARI data .Sosial DI MANA Pengguna ='Mustafa';

Untuk mendapatkan jumlah baris di mana laman web pengguna adalah 'Instagram', cubalah pertanyaan yang dinyatakan di bawah. Jadual 'sosial' hanya mempunyai 4 rekod untuk laman web 'Instagram'.

>> PILIH BANYAK (*) DARI data .Sosial DI MANA Laman web=‘Instagram’;

Untuk mendapatkan jumlah baris di mana ‘Umur’ lebih besar daripada 18 adalah seperti berikut:

>> PILIH BANYAK (*) DARI data .Sosial DI MANA Umur> 18;

Mari ambil data lajur ‘Pengguna’ dan ‘Laman web’ dari jadual, di mana nama Pengguna bermula dengan abjad ‘M’. Cuba arahan di bawah pada shell.

>> PILIH Pengguna ,Laman web DARI data .Sosial DI MANA Pengguna suka ‘M%';

COUNT MySQL (ungkapan)

Dalam MySQL, kaedah COUNT (ekspresi) hanya digunakan apabila anda ingin menghitung nilai bukan Null pada lajur 'ekspresi'. ‘Ungkapan’ adalah nama lajur mana pun. Mari kita ambil contoh ringkas daripadanya. Kami hanya menghitung nilai tidak kosong pada lajur ‘Laman web’, yang berkaitan dengan lajur ‘Umur’ yang mempunyai nilai yang sama dengan ‘25’. Lihat! Kami hanya mempunyai 4 rekod tidak kosong untuk pengguna yang berumur 25 tahun, yang menggunakan laman web.

>> PILIH BANYAK (Laman web) DARI data .Sosial DI MANA Umur= 25;

COUNT MySQL (ungkapan DISTNCT)

Dalam MySQL, kaedah COUNT (ekspresi DISTINCT) digunakan untuk menjumlahkan nilai bukan Null dan nilai yang berbeza dari lajur 'ekspresi'. Untuk mengira bilangan nilai tidak kosong dalam lajur 'Umur', kami telah menggunakan pertanyaan di bawah. Anda akan menemui 6 catatan lajur ‘Umur’ yang tidak kosong dan berbeza dari jadual ‘sosial’. Ini bermakna kita mempunyai 6 orang yang mempunyai usia yang berbeza.

>> PILIH BANYAK ( JAUH Umur) DARI data .Sosial;

COUNT MySQL (JIKA (ungkapan))

Untuk penekanan yang besar, anda harus menggabungkan COUNT () dengan fungsi kawalan aliran. Sebagai permulaan, untuk sebahagian ungkapan yang digunakan dalam kaedah COUNT (), anda mungkin menggunakan fungsi IF (). Mungkin sangat berguna untuk melakukan ini untuk memberikan maklumat yang cepat di dalam pangkalan data. Kami akan menghitung jumlah baris dengan keadaan umur yang berbeza dan membaginya menjadi tiga lajur yang berbeza, yang boleh dikatakan sebagai kategori. Pertama, COUNT (JIKA) akan mengira baris yang berumur kurang dari 20 tahun dan menyimpan kiraan ini ke lajur baru bernama 'Remaja'. COUNT Kedua (JIKA) mengira baris yang berumur antara 20 hingga 30 tahun sambil menyimpannya ke lajur 'Muda'. Ketiga, yang terakhir mengira baris yang berumur lebih dari 30 dan disimpan ke lajur ‘Matang’. Kami mempunyai 5 remaja, 9 muda dan hanya 1 orang dewasa dalam rekod kami.

>> PILIH BANYAK ( JIKA (Umur< dua puluh,1, BULAN ))'Remaja', BANYAK ( JIKA (Umur ANTARA dua puluh DAN 30,1, BULAN ))'Muda', BANYAK ( JIKA (Umur> 30,1, BULAN ))'Matang' DARI data .Sosial;

MySQL COUNT (*) dengan Fasal GROUP BY

Pernyataan GROUP BY adalah arahan SQL yang digunakan untuk baris kumpulan dengan nilai yang sama. Ia mengembalikan jumlah nilai yang terdapat dalam setiap kumpulan. Sebagai contoh, jika anda ingin memeriksa nombor setiap pengguna secara berasingan, anda harus menentukan lajur ‘Pengguna’ dengan klausa GROUP BY sambil mengira rekod bagi setiap pengguna dengan COUNT (*).

>> PILIH Pengguna , BANYAK (*) DARI data .Sosial KUMPULAN OLEH Pengguna ;

Anda boleh memilih lebih daripada dua lajur semasa melakukan pengiraan baris bersama dengan klausa GROUP BY, seperti berikut.

>> PILIH Pengguna ,Umur,Laman web, BANYAK (*) DARI data .Sosial KUMPULAN OLEH Laman web;

Sekiranya kita mahu mengira baris semasa menggunakan klausa WHERE yang mempunyai beberapa syarat di dalamnya bersama GROUP BY dan COUNT (*), anda juga boleh melakukannya. Pertanyaan di bawah akan mengambil dan menghitung catatan lajur: ‘Pengguna’, ‘Laman web’, dan ‘Umur’ dengan nilai laman web hanya ‘Instagram’ dan ‘Snapchat’. Anda dapat melihat bahawa kami hanya mempunyai 1 rekod untuk kedua-dua laman web untuk pengguna yang berbeza.

>> PILIH Pengguna ,Laman web,Umur, BANYAK (*) DARI data .Sosial DI MANA Laman web=‘Instagram’ Atau Laman web=‘Snapchat’ KUMPULAN OLEH Laman web,Umur;

MySQL COUNT (*) dengan GROUP BY dan ORDER BY Clause

Mari cuba klausa GROUP BY dan ORDER BY bersama-sama dengan kaedah COUNT (). Mari ambil dan hitung baris jadual 'sosial' sambil menyusun data dalam susunan menurun menggunakan pertanyaan ini:

>> PILIH Pengguna ,Laman web,Umur, BANYAK (*) DARI data .Sosial KUMPULAN OLEH Umur PERINTAH OLEH BANYAK (*) DESC ;

Pertanyaan yang dinyatakan di bawah akan menghitung baris pertama, kemudian memaparkan satu-satunya rekod yang mempunyai COUNT lebih besar daripada 2 dalam urutan menaik.

>> PILIH Pengguna ,Umur, BANYAK (*) DARI data .Sosial KUMPULAN OLEH Umur MEMPUNYAI BANYAK (*) > 2 PERINTAH OLEH BANYAK (*) ASC ;

Kesimpulannya

Kami telah melalui semua kaedah yang mungkin untuk menghitung catatan yang sepadan atau pendua menggunakan kaedah COUNT () dengan klausa lain yang berbeza.