Je construis une requête avec une GROUP BY
clause qui a besoin de la capacité de compter les enregistrements basés uniquement sur une certaine condition (par exemple, ne comptez que les enregistrements où une certaine valeur de colonne est égale à 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
La COUNTIF()
ligne échoue évidemment car il n'y a pas de fonction SQL native appelée COUNTIF
, mais l'idée ici est de déterminer le pourcentage de toutes les lignes qui ont la valeur «1» pour MyColumn.
Des idées sur la façon de mettre en œuvre correctement cela dans un environnement MS SQL 2005?
ISNULL
, à la place, vous pouvez le faireCASE WHEN myColumn IS NULL
ou utiliserifnull
( stackoverflow.com/a/799406/1861346 )