powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Count не верно трактует expression
10 сообщений из 10, страница 1 из 1
Count не верно трактует expression
    #34234558
rossMoHaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вычитал в доке про такое вот выражение:
count(expression) | any | bigint | number of input values for which the value of expression is not null

Пытаюсь составить элементарный запрос:
Код: plaintext
select count(eventtypeid= 6 ),missionid from allevents  where killerid= 29  group by missionid;
Так он видимо трактует выражение "eventtypeid=6" как операцию присваивания, во всяком случае какую цифру бы я не подставлял результат не отличается от простого count(1). мне же нужно, что б сосчитал количество строк, где поле eventtypeid равнялось 6.

В какую сторону копать?

Заранее благодарен за ответ.
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34234621
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
select count(),missionid from allevents  where killerid= 29   AND eventtypeid= 6  group by missionid;
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34234687
rossMoHaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это-то понятно :) Просто я хотел одной группировкой сосчитать сколько записей вошло с eventtype=6, сколько с eventtype=3 и т.д. Сейчас попробую написать функцию типа checkevent(event int,value int) и если event и value не совпадают, то возрващать null.
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34234999
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может тогда просто и по eventtypeid сгруппировать?
Код: plaintext
1.
select count(),missionid, eventtypeid from allevents  where killerid= 29  group by missionid, eventtypeid;
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34235005
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rossMoHaXВычитал в доке про такое вот выражение:
count(expression) | any | bigint | number of input values for which the value of expression is not null

Пытаюсь составить элементарный запрос:
Код: plaintext
select count(eventtypeid= 6 ),missionid from allevents  where killerid= 29  group by missionid;
Так он видимо трактует выражение "eventtypeid=6" как операцию присваивания, во всяком случае какую цифру бы я не подставлял результат не отличается от простого count(1). мне же нужно, что б сосчитал количество строк, где поле eventtypeid равнялось 6.

В какую сторону копать?

Заранее благодарен за ответ.

Кстати, что бы считало именно так как вы хотите, можно так писать
Код: plaintext
1.
select count(CASE WHEN eventtypeid= 6  THEN true ELSE NULL END), missionid from allevents  where killerid= 29  group by missionid;
Просто тут не в присваивание дело, а в том что просто конструкция eventtypeid=6 возвращает true и false, а не считаються тока NULL.
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34235013
.gc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.gc
Гость
Код: plaintext
select missionid, sum((eventtypeid= 6 )::int) as count_6, sum((eventtypeid= 9 )::int) as count_9 from ...
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34235146
4321ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.gc
Код: plaintext
select missionid, sum((eventtypeid= 6 )::int) as count_6, sum((eventtypeid= 9 )::int) as count_9 from ...
кастить булены в инты? Имхо, (в_постгрисе) сначала придется свой каст определять. Или я что-то упустил?
Какой постгрис?


кстате, мне привычней было б
Код: plaintext
- sum((eventtypeid= 6 )::int) AS ...
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34235148
rossMoHaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JelisА может тогда просто и по eventtypeid сгруппировать?
Код: plaintext
1.
select count(),missionid, eventtypeid from allevents  where killerid= 29  group by missionid, eventtypeid;

Считаю значения не только в eventtypeid =)
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34235149
rossMoHaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.gc
Код: plaintext
select missionid, sum((eventtypeid= 6 )::int) as count_6, sum((eventtypeid= 9 )::int) as count_9 from ...

Ого! Вот это решение :) Сейчас попробую, если сработает огромный респект.
...
Рейтинг: 0 / 0
Count не верно трактует expression
    #34237443
V.N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а так нет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT missionid,
			 SUM (CASE
							 WHEN eventtypeid =  6 
									THEN  1 
						END) AS count_6,
			 SUM (CASE
							 WHEN eventtypeid =  9 
									THEN  1 
						END) AS count_9
	FROM my_table
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Count не верно трактует expression
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]