Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом / 7 сообщений из 7, страница 1 из 1
15.07.2016, 10:18
    #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
15.07.2016, 10:20
    #39274341
Perederiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
bool_or(osnova) в запросе
...
Рейтинг: 0 / 0
15.07.2016, 10:23
    #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
15.07.2016, 10:33
    #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
15.07.2016, 10:38
    #39274372
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Perederiy,

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

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

только те у которых osnova=true
...
Рейтинг: 0 / 0
15.07.2016, 11:15
    #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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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