Подсчет нескольких запросов данных для одного столбца - PullRequest
0 голосов
/ 12 мая 2011

У меня есть состояние имени столбца (int), в котором вставляются только 0 и 1, в зависимости от логики, я хочу запрос подсчета, который может подсчитать, сколько 0 и сколько 1 есть в таблице в одном запросекак:

Выбрать количество (штат) Из productDetail ......

Ответы [ 3 ]

3 голосов
/ 12 мая 2011
select
    sum(state) countOfOnes,
    sum(decode(state, 0, 1, 0)) countOfZeros 
from
    productDetail
;

или

select
    sum(state) countOfOnes,
    count(*) - sum(state) countOfZeros 
from
    productDetail
;

или

select
    state, 
    count(*) over (partition by state order by state) countOfState
from
    productDetail
;

Первые два примера вернут одну строку с двумя столбцами:

countOfOnes  countOfZeros
=========================
154          21  

Третий пример вернет две строки с двумя столбцами, по одной строке на состояние.

state        countOfState
=========================
0            21
1            154  
1 голос
/ 12 мая 2011

Другой вариант:

select 
  count(*) countOverall,
  sum(state) countOfOnes,
  count(*) - sum(state) countOfZeroes
from
  productDetail;
0 голосов
/ 12 мая 2011
select count(state) from productDetail Where state = 0
select count(state) from productDetail Where state = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...