The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Подсчет числа строк"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Подсчет числа строк" 
Сообщение от Дима emailИскать по авторуВ закладки(??) on 25-Окт-05, 10:37  (MSK)
Всем привет.

Вопрос такой. Есть поле типа boolean.
Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых 'false';

В MySQL проходит так
select sum(b),sum(!b) from tbl;

Как тоже самое сделать в postgresql.

Заранее благодарен, Дима.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Подсчет числа строк" 
Сообщение от allez Искать по авторуВ закладки(ok) on 25-Окт-05, 11:21  (MSK)
>Всем привет.
>
>Вопрос такой. Есть поле типа boolean.
>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых
>'false';
>
>В MySQL проходит так
>select sum(b),sum(!b) from tbl;
>
>Как тоже самое сделать в postgresql.
>
>Заранее благодарен, Дима.


Э-э, вы серьезно спрашиваете или тонко издеваетесь? Делайте
"select * from tbl" и получите ответ на ваш вопрос.
Или у вас поле типа boolean умеет принимать какое-то иное значение кроме
'true' и 'false'? Или вы допускаете значение 'null' в этом поле? А зачем?

P.S. Почитайте про ключевое слово WHERE в операторе SELECT.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Подсчет числа строк" 
Сообщение от Дима emailИскать по авторуВ закладки(??) on 25-Окт-05, 11:54  (MSK)
>>Всем привет.
>>
>>Вопрос такой. Есть поле типа 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;

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Подсчет числа строк" 
Сообщение от allez Искать по авторуВ закладки(ok) on 25-Окт-05, 12:02  (MSK)
А-а, только теперь до меня дошло, что вам нужна не общая сумма, а отдельно
количество истинных и отдельно - ложных значений поля. Прошу прощения,
тормознул :-).
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Подсчет числа строк" 
Сообщение от GD Искать по авторуВ закладки on 25-Окт-05, 12:20  (MSK)
>Всем привет.
>
>Вопрос такой. Есть поле типа boolean.
>Нужно одним запросом подсчитать число строк, значение которых 'true' и значение которых
>'false';
>
>В MySQL проходит так
>select sum(b),sum(!b) from tbl;
>
>Как тоже самое сделать в postgresql.
>
>Заранее благодарен, Дима.

странные ответы

select b, sum(*) from tbl group by b;

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Подсчет числа строк" 
Сообщение от Дима emailИскать по авторуВ закладки(??) on 25-Окт-05, 13:02  (MSK)
>>Всем привет.
>>
>>Вопрос такой. Есть поле типа 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;


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Подсчет числа строк" 
Сообщение от GD Искать по авторуВ закладки on 25-Окт-05, 14:06  (MSK)
>>>Всем привет.
>>>
>>>Вопрос такой. Есть поле типа 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;

тады ой

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Подсчет числа строк" 
Сообщение от Divan emailИскать по авторуВ закладки on 27-Окт-05, 13:53  (MSK)
>Всем привет.
>
>Вопрос такой. Есть поле типа 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 ;-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Подсчет числа строк" 
Сообщение от Дима emailИскать по авторуВ закладки(??) on 27-Окт-05, 13:59  (MSK)
>>Всем привет.
>>
>>Вопрос такой. Есть поле типа 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 привык, вложенных запросов не делаю :-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру