#asp.net #sql #database #count
#asp.net #sql #База данных #подсчет
Вопрос:
У меня есть состояние имени столбца (int), в которое вставляются только 0 и 1 в зависимости от логики, мне нужен запрос count, который может подсчитать, сколько 0 и сколько 1 в таблице в одном запросе, например:
Выберите Count (состояние) из ProductDetail……
Ответ №1:
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. Количество символов и единиц .. встроено ли это в feauture в sql server
2. я думал, что мы используем As для результирующего столбца
3. еще одна вещь, если я хочу использовать оба результирующих столбца в asp.net как я буду это делать в качестве отдельного int, потому что запрос вернет dt, должен ли я сделать что-то вроде этого dt.Rows[0][0] , dt.Rows [0][1]
Ответ №2:
Другой вариант:
select
count(*) countOverall,
sum(state) countOfOnes,
count(*) - sum(state) countOfZeroes
from
productDetail;
Ответ №3:
select count(state) from productDetail Where state = 0
select count(state) from productDetail Where state = 1
Комментарии:
1. Это два утверждения… Операционная система запросила один запрос.