- Подсчет числа строк, allez, 11:21 , 25-Окт-05 (1)
>Всем привет. > >Вопрос такой. Есть поле типа boolean. >Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >'false'; > >В MySQL проходит так >select sum(b),sum(!b) from tbl; > >Как тоже самое сделать в postgresql. > >Заранее благодарен, Дима. Э-э, вы серьезно спрашиваете или тонко издеваетесь? Делайте "select * from tbl" и получите ответ на ваш вопрос. Или у вас поле типа boolean умеет принимать какое-то иное значение кроме 'true' и 'false'? Или вы допускаете значение 'null' в этом поле? А зачем?
P.S. Почитайте про ключевое слово WHERE в операторе SELECT.
- Подсчет числа строк, Дима, 11:54 , 25-Окт-05 (2)
>>Всем привет. >> >>Вопрос такой. Есть поле типа boolean. >>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >>'false'; >> >>В MySQL проходит так >>select sum(b),sum(!b) from tbl; >> >>Как тоже самое сделать в postgresql. >> >>Заранее благодарен, Дима. > > >Э-э, вы серьезно спрашиваете или тонко издеваетесь? Делайте >"select * from tbl" и получите ответ на ваш вопрос. >Или у вас поле типа boolean умеет принимать какое-то иное значение кроме > >'true' и 'false'? Или вы допускаете значение 'null' в этом поле? А >зачем? > >P.S. Почитайте про ключевое слово WHERE в операторе SELECT. Нет, я не издеваюсь, я серьезно. Мне нужно, чтобы запрос выдал сразу число true и число false.
У меня, кстати вышло так select SUM(cast(case WHEN b then 1 else 0 end as int)), SUM(cast(case WHEN b then 0 else 1 end as int))from tbl;
- Подсчет числа строк, allez, 12:02 , 25-Окт-05 (3)
А-а, только теперь до меня дошло, что вам нужна не общая сумма, а отдельно количество истинных и отдельно - ложных значений поля. Прошу прощения, тормознул :-). - Подсчет числа строк, GD, 12:20 , 25-Окт-05 (4)
>Всем привет. > >Вопрос такой. Есть поле типа boolean. >Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >'false'; > >В MySQL проходит так >select sum(b),sum(!b) from tbl; > >Как тоже самое сделать в postgresql. > >Заранее благодарен, Дима. странные ответы select b, sum(*) from tbl group by b;
- Подсчет числа строк, Дима, 13:02 , 25-Окт-05 (5)
>>Всем привет. >> >>Вопрос такой. Есть поле типа boolean. >>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >>'false'; >> >>В MySQL проходит так >>select sum(b),sum(!b) from tbl; >> >>Как тоже самое сделать в postgresql. >> >>Заранее благодарен, Дима. > >странные ответы > >select b, sum(*) from tbl group by b; В таком случае мне выдастся результат в двух строках. А на самом деле мне нужен результат в одной строке, так как у меня там еще полно на самом деле условий grop by и where. (Запрос гораздо более сложный, это просто я в вопросе для выделения сути дела свел его к такому простому случаю).
P.S. А так вроде бы вопрос отпал. Работает то что я написал. select SUM(cast(case WHEN b then 1 else 0 end as int)), SUM(cast(case WHEN b then 0 else 1 end as int))from tbl;
- Подсчет числа строк, GD, 14:06 , 25-Окт-05 (6)
>>>Всем привет. >>> >>>Вопрос такой. Есть поле типа boolean. >>>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >>>'false'; >>> >>>В MySQL проходит так >>>select sum(b),sum(!b) from tbl; >>> >>>Как тоже самое сделать в postgresql. >>> >>>Заранее благодарен, Дима. >> >>странные ответы >> >>select b, sum(*) from tbl group by b; > > >В таком случае мне выдастся результат в двух строках. А на самом >деле мне нужен результат в одной строке, так как у меня >там еще полно на самом деле условий grop by и where. >(Запрос гораздо более сложный, это просто я в вопросе для выделения >сути дела свел его к такому простому случаю). > >P.S. А так вроде бы вопрос отпал. Работает то что я написал. > >select SUM(cast(case WHEN b then 1 else 0 end as int)), SUM(cast(case >WHEN b then 0 else 1 end as int))from tbl; тады ой
- Подсчет числа строк, Divan, 13:53 , 27-Окт-05 (7)
>Всем привет. > >Вопрос такой. Есть поле типа boolean. >Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >'false'; > >В MySQL проходит так >select sum(b),sum(!b) from tbl; > >Как тоже самое сделать в postgresql. > >Заранее благодарен, Дима. чуть чуть упростить можно - select count(*),(select count(*) from tbl where not b) from tbl where b; looks bit nicely ;-)
- Подсчет числа строк, Дима, 13:59 , 27-Окт-05 (8)
>>Всем привет. >> >>Вопрос такой. Есть поле типа boolean. >>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых >>'false'; >> >>В MySQL проходит так >>select sum(b),sum(!b) from tbl; >> >>Как тоже самое сделать в postgresql. >> >>Заранее благодарен, Дима. > >чуть чуть упростить можно - >select count(*),(select count(*) from tbl where not b) from tbl where b; > > >looks bit nicely ;-) Спасибо, тоже идея. А то к MySQL 3.23 привык, вложенных запросов не делаю :-)
|