Saya dapat memilih semua nilai yang berbeda dalam kolom dengan cara berikut:
SELECT DISTINCT column_name FROM table_name;
SELECT column_name FROM table_name GROUP BY column_name;
Tetapi bagaimana saya mendapatkan jumlah baris dari kueri itu? Apakah diperlukan subquery?
Jawaban:
Anda dapat menggunakan
DISTINCT
kata kunci dalamCOUNT
fungsi agregat:Ini hanya akan menghitung nilai berbeda untuk kolom itu.
sumber
select A,COUNT(DISTINCT B) from table group by A
Ini akan memberi Anda KEDUA nilai kolom yang berbeda dan jumlah setiap nilai. Saya biasanya menemukan bahwa saya ingin mengetahui kedua informasi tersebut.
sumber
columnName
, Anda sudah mendapatkan nilai berbeda hanya sekali dandistinct
kata kunci tidak melakukan apa pun di sini. Coba kueri tanpa itu, resultset persis sama.Ketahuilah bahwa Count () mengabaikan nilai null, jadi jika Anda perlu membiarkan null sebagai nilai yang berbeda, Anda dapat melakukan sesuatu yang rumit seperti:
sumber
case when my_col is null then 1 else my_col end
SELECT my_col, COUNT(my_col) + COUNT(CASE WHEN my_col IS NULL THEN 1 ELSE NULL END) as CountOf from my_Table GROUP BY my_col
count(*)
secara khusus merupakan hitungan baris.Jumlah sql dari nilai unik nama_kolom dan diurutkan berdasarkan frekuensi:
sumber
Ini akan memberikan jumlah kelompok kolom yang berbeda.
sumber
Anda harus menghitung col yang berbeda itu, lalu berikan alias.
sumber
sumber
**
**
sumber
Anda dapat menggunakan kueri ini, untuk menghitung data yang berbeda / berbeda. Terima kasih
sumber
Setelah MS SQL Server 2012, Anda dapat menggunakan fungsi jendela juga.
sumber
Hitung (berbeda ({fieldname})) berlebihan
Cukup Hitung ({fieldname}) memberi Anda semua nilai yang berbeda dalam tabel itu. Itu tidak akan (sebanyak anggapan) hanya memberi Anda Hitungan tabel [yaitu BUKAN sama dengan Hitungan (*) dari tabel]
sumber
count(field)
mengembalikan jumlah baris manafield
adalahnot null
.