Sto creando una query con una GROUP BY
clausola che richiede la possibilità di contare i record solo in base a una determinata condizione (ad es. Contare solo i record in cui un determinato valore di colonna è uguale a 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()
linea ovviamente fallisce poiché non viene chiamata alcuna funzione SQL nativa COUNTIF
, ma l'idea qui è di determinare la percentuale di tutte le righe che hanno il valore '1' per MyColumn.
Qualche idea su come implementarlo correttamente in un ambiente MS SQL 2005?
ISNULL
, invece puoi fareCASE WHEN myColumn IS NULL
o usareifnull
( stackoverflow.com/a/799406/1861346 )