2015-10-17 3 views
4

Я пытаюсь выяснить, как вернуть запрос выбора, содержащий подсчет всех значений в столбце, который больше 0. Затем в следующем столбце отображается количество всех значения, что = 0.Выбрать граф Где значения больше 0 SQL Server

Пример:

ID ColumnA 
1 1  
2 2 
3 1 
4 2 
5 0 
6 0 
7 1 

возвращает результат для выбора запроса:

NumberOfGreaterThan0 NumberThatEqual0 

5      2 

ответ

10

Вы можете использовать условные агрегаты для этого с помощью CASE выражение:

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

Это работает потому, что агрегатные функции игнорируют NULL значения.

+0

Это фантастика, именно то, что я искал. Очень признателен :) – Revokez

2

Вы можете использовать пару count функций над case выражениями:

SELECT COUNT(CASE WHEN columa > 0 THEN 1 ELSE NULL END) AS NumberOfGreaterThan0, 
     COUNT(CASE columa WHEN 0 THEN 1 ELSE NULL END) AS NumberThatEqual0 
FROM my_table 
Смежные вопросы