Saya dapat memilih semua nilai-nilai yang berbeda dalam kolom dengan cara berikut:
SELECT DISTINCT column_name FROM table_name;
SELECT column_name FROM table_name KELOMPOK DENGAN column_name;
Tapi bagaimana cara mendapatkan jumlah baris dari query itu? Adalah subquery yang diperlukan?
Anda dapat menggunakan BERBEDA
kata kunci di dalam COUNT
fungsi agregat:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
Ini akan dihitung hanya nilai yang berbeda untuk kolom tersebut.
Ini akan memberikan anda BERDUA berbeda nilai kolom dan jumlah dari setiap nilai. Saya biasanya menemukan bahwa saya ingin tahu kedua potongan-potongan informasi.
SELECT [columnName], count([columnName]) AS CountOf
FROM [tableName]
GROUP BY [columnName]
Diketahui bahwa Count() mengabaikan nilai-nilai null, jadi jika anda perlu untuk memungkinkan null sebagai nilai sendiri yang berbeda yang dapat anda lakukan sesuatu yang rumit seperti:
select count(distinct my_col)
+ count(distinct Case when my_col is null then 1 else null end)
from my_table
/
Count(distinct({fieldname})) adalah berlebihan
Hanya Menghitung({fieldname}) memberikan anda semua nilai-nilai yang berbeda di atas meja itu. Itu tidak akan (sebanyak kira) hanya memberikan Hitungan tabel [yaitu TIDAK sama dengan Count(*) dari tabel]