Select Count Where Values greater than 0 SQL Server Select Count Where Values greater than 0 SQL Server sql sql

Select Count Where Values greater than 0 SQL Server


You can use conditional aggregates for this via CASE expression:

SELECT COUNT(CASE WHEN ColumnA > 0 THEN 1 END) AS NumberOfGreaterThan0       ,COUNT(CASE WHEN ColumnA = 0 THEN 1 END) AS NumberThatEqual0FROM YourTable

This works because aggregate functions ignore NULL values.


You can use a couple of count functions over case expressions:

SELECT COUNT(CASE WHEN columa > 0 THEN 1 ELSE NULL END) AS NumberOfGreaterThan0,       COUNT(CASE columa WHEN 0 THEN 1 ELSE NULL END) AS NumberThatEqual0FROM   my_table