Я строю запрос с 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
, но идея здесь , чтобы определить процент всех строк , которые имеют значение «1» для MyColumn.
Любые мысли о том, как правильно реализовать это в среде MS SQL 2005?
ISNULL
, вместо этого вы можете сделатьCASE WHEN myColumn IS NULL
или использоватьifnull
( stackoverflow.com/a/799406/1861346 )