Saya sedang membangun kueri dengan GROUP BY
klausa yang membutuhkan kemampuan untuk menghitung catatan hanya berdasarkan kondisi tertentu (misalnya menghitung hanya catatan di mana nilai kolom tertentu sama dengan 1).
SELECT UID,
COUNT(UID) AS TotalRecords,
SUM(ContractDollars) AS ContractDollars,
(COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1
FROM dbo.AD_CurrentView
GROUP BY UID
HAVING SUM(ContractDollars) >= 500000
The COUNTIF()
garis jelas gagal karena tidak ada fungsi SQL asli disebut COUNTIF
, tapi ide di sini adalah untuk menentukan persentase semua baris yang memiliki nilai '1' untuk MyColumn.
Adakah pemikiran tentang bagaimana menerapkan ini dengan benar di lingkungan MS SQL 2005?
ISNULL
, sebaliknya Anda dapat melakukannyaCASE WHEN myColumn IS NULL
, atau menggunakanifnull
( stackoverflow.com/a/799406/1861346 )