GROUP BY
特定の条件のみに基づいてレコードをカウントする機能が必要な句を使用してクエリを作成しています(たとえば、特定の列の値が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
というCOUNTIF()
ネイティブSQL関数がないため、この行は明らかに失敗しますCOUNTIF
が、ここでの考え方は、MyColumnの値が「1」であるすべての行のパーセンテージを決定することです。
これをMS SQL 2005環境に適切に実装する方法についての考えはありますか?
ISNULL
、代わりにあなたが行うことはできないCASE WHEN myColumn IS NULL
、または使用ifnull
(stackoverflow.com/a/799406/1861346)