Size: a a a

pgsql – PostgreSQL

2020 August 15

SV

Sergey Vats in pgsql – PostgreSQL
источник

SV

Sergey Vats in pgsql – PostgreSQL
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
База у вас как бы спрашивает: “а что делать с вот этими product_id и productQuantity, которые различаются в этих записях”?
источник

SV

Sergey Vats in pgsql – PostgreSQL
Denis Girko ☕️
База у вас как бы спрашивает: “а что делать с вот этими product_id и productQuantity, которые различаются в этих записях”?
а что с ними можно сделать? мне нужно сгруппировать по айди, а остальное запушить в массив items допустим
Я имею ввиду чтобы на выходе получилось { id: 24, items: [{ income... и тд}, { date... и тд }]}
источник

P

Petr in pgsql – PostgreSQL
Sergey Vats
а что с ними можно сделать? мне нужно сгруппировать по айди, а остальное запушить в массив items допустим
Я имею ввиду чтобы на выходе получилось { id: 24, items: [{ income... и тд}, { date... и тд }]}
э.... тебе в оконные функции тогда нужно лезть
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Вот это и нужно сказать в вашем SQL: применить функцию array_agg или jsonb_agg, что вам там ближе.
источник

SV

Sergey Vats in pgsql – PostgreSQL
Благодарю, посмотрю
источник

KK

Konstantin K in pgsql – PostgreSQL
Всем привет! Есть функция с returns table, в некоторых случаях нужно выдавать пустоту. Как это прописать?
источник

KK

Konstantin K in pgsql – PostgreSQL
на return null он же обидится
источник

A

Alexander in pgsql – PostgreSQL
это как пустоту? select * from table where rownum<1  не работает?
источник

KK

Konstantin K in pgsql – PostgreSQL
как вариант
источник

KK

Konstantin K in pgsql – PostgreSQL
вообще мне надо только одну строчку, там 7 полей
источник

KK

Konstantin K in pgsql – PostgreSQL
может выходными параметрами обойтись?
источник

A

Alexander in pgsql – PostgreSQL
упс, не тот чат, не помню, у postgresql может не быть rownum, там вроде limit, сорри что ввёл в заблуждение...
источник

KK

Konstantin K in pgsql – PostgreSQL
да смысл понятен :) 7 выходных параметров не сильно говнокод?
источник

A

Alexander in pgsql – PostgreSQL
ну если выход в принципе не подразумевает более одного ряда, то, имхо, лучше множество выходных параметров
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Evgeniy Wolf
Коллеги, доброго времени суток! Подскажите пожалуйста, никак не могу разобраться уже 2-й день:
Есть таблица (результат выборки), выглядит примерно так:
id, table2_id
1, 3
1, 4
1, 5
2, 10
2, 11
2, 12

Нужно сделать LEFT JOIN table2 к этой таблице (выборке), со следующим условием: к каждой строке должны быть приJOIN'ены строки группы (id) в которую он входит. То есть, к каждой строке должно приJOIN'интся в данном случае, строки 1, 2, 3 (id=1) строки из table2 с id=[3,4,5], а к строки 4,5,6 (id=2) — строки из table2 с id=[10,11,12], т.е. к каждой строке исходной таблицы (выборки) в данном случае должны приJOIN'иться ещё по 3 строки из таблицы2.

Извините за сумбурную постановку вопроса, не знаю как ещё его сформулировать. Разумеется, я перепробовал уже несколько способов, в т.ч. пробовал LEFT JOIN array_agg(), но Postgres ругается что нельзя использовать агрегатные функции в JOIN'ах. Единственным полностью рабочим вариантом на данный момент у меня оказался LEFT JOIN (SELECT ... ), но с учётом того, что исходная выборка может насчитывать несколько десятков (или даже сотен) тысяч результатов — делать такое кол-во подзапросов, я думаю не очень хорошее решение. Наверняка есть какое-то простое и элегантное решение для подобных задач
Раз у Вас уже есть рабочее решение, почему бы его не показать (лучше в виде sqlfiddle / self-contained test case)?
А то описание не очень понятное, в самом деле...
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Yaroslav Schekin
Раз у Вас уже есть рабочее решение, почему бы его не показать (лучше в виде sqlfiddle / self-contained test case)?
А то описание не очень понятное, в самом деле...
Мне оно не показалось рабочим и я его затёр, к сожалению... (слишком медленно и криво, на мой взгляд), но постараюсь переформулировать вопрос на более простой и понятный, как раз работаю над этим
источник

KK

Konstantin K in pgsql – PostgreSQL
Alexander
ну если выход в принципе не подразумевает более одного ряда, то, имхо, лучше множество выходных параметров
не, нужна таблица... наверху разные проверки, если всё плохо - надо вернуть пустую таблицу
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Konstantin K
Всем привет! Есть функция с returns table, в некоторых случаях нужно выдавать пустоту. Как это прописать?
А какой язык / как обычно возвращаете (а лучше бы пример показали)?
источник