172 похожих чатов

Люди добрые, а как можно получить только один вложенный массив? Например,

{1-electrical-components} или {1-electrical-components,2-motor-control-and-protection,3-magnetic-contactors}, но не {{}}.


SELECT p.product_id,
ARRAY_AGG(cv.slugs) FILTER (WHERE cv.slugs IS NOT NULL) AS category_slugs
FROM products AS p
LEFT JOIN shop_settings AS ss
ON ss.product_id = p.product_id
AND ss.deleted = FALSE
LEFT JOIN brands AS b
ON b.brand_id = p.brand_id
LEFT JOIN categories_view AS cv
ON cv.category_id = p.category_id
GROUP BY p.product_id;


product_id | category_slugs
--------------------------------------------- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------
cc415d6c-02b4-4f1c-b0eb-f50bd436d516 | {{1-electrical-components,2-motor-control-and-protection}}
58bd6c91-8ff5-4b4e-a822-b5bed849986b | {{1-electrical-components}}
0f69a750-c902-430a-ac11-11f9964d353e | {{1-electrical-components,2-motor-control-and-protection,3-magnetic-contactors},{1-electrical-components,2-motor-control-and-protection,3-magnetic-contactors}}
nnn |
1 |

3 ответов

8 просмотров

а что у вас в cv.slugs лежит, уже массив?

Maxim- Автор вопроса
Виктор Егоров
а что у вас в cv.slugs лежит, уже массив?

Да, {1-electrical-components,2-motor-control-and-protection,3-magnetic-contactors}

Maxim- Автор вопроса

Агрегат самодельный тут вписывается неплохо: ``` CREATE AGGREGATE array_accum (anyarray) ( sfunc = array_cat, stype = anyarray, initcond = '{}' ); SELECT ARRAY_ACCUM(DISTINCT cv.slugs) product_id | array_accum --------------------------------------+-------------------------------------------------------------------------------- 0f69a750-c902-430a-ac11-11f9964d353e | {1-electrical-components,2-motor-control-and-protection,3-magnetic-contactors} 1 | {} 58bd6c91-8ff5-4b4e-a822-b5bed849986b | {1-electrical-components} cc415d6c-02b4-4f1c-b0eb-f50bd436d516 | {1-electrical-components,2-motor-control-and-protection} nnn | {} ``` https://www.postgresql.org/docs/9.2/xaggr.html https://stackoverflow.com/questions/43472482/postgres-array-agg-throws-cannot-accumulate-empty-arrays-for-empty-arrays

Похожие вопросы

Обсуждают сегодня

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
анрей С какой целью зашёл?
КТ315
42
Коллеги, у меня тут возникла одна очень интересная задачка. Есть один бандл, который содержит в себе 2 типа образов - бэкенд и фронтенд. Выкатываются последовательно, сперва б...
სერგეი ქრისტოვი
12
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Насколько моя реализация Exercise 1 плохая? data MessageType = Info | Warning | Error Int deriving (Show, Eq) type TimeStamp = Int data LogMessage = LogMessage ...
= ?
10
Карта сайта