Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL COUNT() – Dapatkan Jumlah Baris yang Akan Dikembalikan oleh Query

MySQL menyertakan COUNT() fungsi, yang memungkinkan Anda mengetahui berapa banyak baris yang akan dikembalikan dari kueri. Fungsi ini adalah bagian dari standar SQL, dan dapat digunakan dengan sebagian besar sistem manajemen basis data relasional.

COUNT() fungsi juga dapat digunakan untuk memengaruhi hasil kueri jika diperlukan, misalnya, dengan hanya mengembalikan hasil yang memiliki jumlah baris lebih besar dari jumlah tertentu.

Artikel ini berisi contoh COUNT() penggunaan di MySQL.

Data

Pertama, inilah data yang akan kita gunakan untuk contoh di halaman ini:

PILIH *FROM Tugas;

Hasil:

+--------+-------------------+----------------- +| ID Tugas | Nama Tugas | Deskripsi Tugas |+--------+-------------------+-----------------+ | 1 | Berkebun | NULL || 2 | Beri makan kucing | NULL || 3 | Cat atap | NULL || 4 | Ajak anjing jalan-jalan | NULL || 5 | santai | NULL || 6 | Beri makan kucing | NULL |+--------+-------------------+-----------------+ 

Hitung Semua Baris dalam Tabel

Anda dapat menggunakan COUNT() untuk mengembalikan jumlah total baris dalam tabel:

PILIH JUMLAH(*)FROM Tugas;

Hasil:

+----------+| JUMLAH(*) |+----------+| 6 |+----------+ 

Ini mengembalikan jumlah baris dalam tabel karena kami tidak memberikan kriteria apa pun untuk mempersempit hasil.

Persempit Hasil

Saat kita menambahkan WHERE klausa yang mempersempit kumpulan hasil, kami mendapatkan angka yang lebih kecil:

SELECT COUNT(*)FROM TasksWHERE TaskName LIKE '%cat%';

Hasil:

+----------+| JUMLAH(*) |+----------+| 2 |+----------+

Satu Kolom vs Asterisk (*)

Contoh sebelumnya semua menggunakan tanda bintang untuk menerapkan hitungan ke semua kolom. Seperti halnya kueri apa pun, tanda bintang bersifat opsional, dan digunakan sebagai karakter pengganti untuk mengembalikan semua kolom. Jadi saat menggunakan COUNT() fungsi, Anda juga memiliki opsi untuk menyediakan kolom tertentu (sebagai lawan dari semua kolom) sebagai argumen.

Contoh:

PILIH JUMLAH(NamaTugas)FROM Tugas;

Hasil:

+-----------------+| COUNT(NamaTugas) |+-----------------+| 6 |+-----------------+

Meskipun contoh ini mengembalikan hasil yang sama seperti yang kita dapatkan saat menggunakan tanda bintang, itu tidak selalu akan menjadi kasusnya. Misalnya, inilah yang terjadi jika kita menentukan kolom yang berbeda:

PILIH JUMLAH(Deskripsi Tugas)FROM Tugas;

Hasil:

+------------------------+| COUNT(Deskripsi Tugas) |+------------------------+| 0 |+------------------------+

Dalam hal ini kita mendapatkan nol, karena kolom tersebut berisi nilai nol di setiap baris.

Contoh – Berbeda

Anda dapat menambahkan DISTINCT argumen untuk mengembalikan hanya jumlah baris dengan non-NULL different yang berbeda nilai.

Anda mungkin memperhatikan bahwa TaskName kolom memiliki nilai duplikat ("Umpan kucing" muncul dua kali). Ini dapat menyebabkan masalah jika Anda tidak ingin duplikat dihitung.

Begini tampilannya jika kita menerapkan DISTINCT argumen ke TaskName kolom:

SELECT COUNT(DISTINCT TaskName)FROM Tasks;

Hasil:

+--------------------------+| COUNT(Nama Tugas BERBEDA) |+--------------------------+| 5 |+--------------------------+

Jadi, meskipun tabel berisi enam baris, dua di antaranya adalah duplikat. Oleh karena itu, keduanya dihitung sebagai satu kita mendapatkan hasil dari lima.

Contoh – Klausa HAVING

Anda juga dapat menggunakan COUNT() dengan HAVING klausa untuk membatasi kumpulan hasil berdasarkan jumlah baris yang akan dikembalikan.

Berikut ini contoh penggunaan kumpulan data yang berbeda dengan contoh sebelumnya:

GUNAKAN Musik;SELECT ar.ArtistName, COUNT(al.AlbumName) 'Album Count'FROM Artists arINNER JOIN Albums al ON ar.ArtistId =al.ArtistIdGROUP BY ar.ArtistNameHAVING COUNT(al.AlbumName)> 1; 

Hasil:

+-------------------------+-------------+| Nama Artis | Jumlah Album |+--------------+-------------+| Gadis Besi | 5 || Devin Townsend | 3 || Michael Belajar Rock | 3 || Tom Jones | 3 || Allan Holdsworth | 2 |+-------------------------+-------------+

Kueri ini hanya mengembalikan artis yang telah merilis lebih dari 1 album. Inilah yang terjadi ketika kita meningkatkan nilai di HAVING klausa:

GUNAKAN Musik;SELECT ar.ArtistName, COUNT(al.AlbumName) 'Album Count'FROM Artists arINNER JOIN Albums al ON ar.ArtistId =al.ArtistIdGROUP BY ar.ArtistNameHAVING COUNT(al.AlbumName)> 4; 

Hasil:

+-------------+-------------+| Nama Artis | Jumlah Album |+------------+-------------+| Gadis Besi | 5 |+-------------+-------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan id kenaikan otomatis berikutnya di mysql

  2. Cara Terbaik untuk Memperbaiki Tabel InnoDB yang Rusak di MySQL

  3. KEDUA() Contoh – MySQL

  4. Bagaimana cara mengambil cadangan satu tabel dalam database MySQL?

  5. Menduplikasi tabel MySQL, indeks, dan data