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