powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 7, страница 1 из 1
Помогите с запросом
    #39274339
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fio,nomer,osnova(bool),kol

иванов 1 true 4
петров 1 false 5

select ...,nomer,boor_or(osnova),sum(kol) from table group by nomer

как мне добавить в select fio только тех у кого osnova=true ?
where не подходит - тогда нет суммирования kol
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274341
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bool_or(osnova) в запросе
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274343
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiy,
...
sum(case osnova when true then 1 else 0 end) as osnova_true,
sum(case osnova when false then 1 else 0 end) as osnova_false,
...
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274360
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина АннаPerederiy,
...
sum(case osnova when true then 1 else 0 end) as osnova_true,
sum(case osnova when false then 1 else 0 end) as osnova_false,
...

я не понял
как в это случае вывести fio ?
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274372
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiy,

Если для одного значения `nomer` найдутся несколько `fio` с заданным условием -- какой из них следует показывать?
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274375
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorovPerederiy,

Если для одного значения `nomer` найдутся несколько `fio` с заданным условием -- какой из них следует показывать?

только те у которых osnova=true
...
Рейтинг: 0 / 0
Помогите с запросом
    #39274413
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiy,

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

Как вариант:
Код: sql
1.
2.
3.
4.
SELECT array_agg(CASE WHEN osnova THEN fio END) fio_array,
       nomer,boor_or(osnova),sum(kol)
  FROM table
 GROUP BY nomer;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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