Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Операции над массивами 
:(
    Опции темы
polin11
Дата 5.3.2023, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



Использую Postgresql

1) Есть удобная операция конкатенация массива ||, но при такой операции могут быть будут элементов
например array[1,2,3] || array[1,4] -> array[1,2,3,1,4]
Вопрос как объединить 2 массива при этом убрать дубли элементов?

2) Если ли операция или функция убрать из массива элементы другого массива, то есть
array[1,2,3] - array[1,4] -> array[2,3]?
PM MAIL   Вверх
RubyLudwigValentin
Дата 5.3.2023, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


magister wandal



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.3.2023
Где: Rostov-on-Don

Репутация: нет
Всего: нет



Postgres уже объектная база данных. Массивы в базе - это не стандартный SQL.
Но, возможно, можно написать хранимую процедуру, которая будет убирать дубли из вашего массива.
PM MAIL   Вверх
Akina
Дата 5.3.2023, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



polin11
Цитата(polin11 @  5.3.2023,  03:38 Найти цитируемый пост)
Вопрос как объединить 2 массива при этом убрать дубли элементов?

Задача очевидно недоопределена. С точки зрения Postgre два массива с одинаковым набором элементов, но различающимся их порядком - различны. То есть следует более точно описывать задачу - в зависимости от дополнительных условий финальное решение будет различным.

Цитата(polin11 @  5.3.2023,  03:38 Найти цитируемый пост)
Если ли операция или функция убрать из массива элементы другого массива

Нет. UNNEST - EXCEPT - AGGREGATE. Или иное решение подобного толка.

Добавлено через 1 минуту и 28 секунд
Цитата(RubyLudwigValentin @  5.3.2023,  10:18 Найти цитируемый пост)
Postgres уже объектная база данных. 

Нет такого термина. А если имеется в виду объектно-ориентированная - то это утверждение очевидно ложно.

Цитата(RubyLudwigValentin @  5.3.2023,  10:18 Найти цитируемый пост)
можно написать хранимую процедуру, которая будет убирать дубли из вашего массива.

Из пушки по воробьям..


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
RubyLudwigValentin
Дата 6.3.2023, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


magister wandal



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.3.2023
Где: Rostov-on-Don

Репутация: нет
Всего: нет



Цитата

Нет такого термина. А если имеется в виду объектно-ориентированная - то это утверждение очевидно ложно.


ОК, уточню, база данных SQL, но с объектами. Массив - это объектное расширение.

Цитата

Из пушки по воробьям..

 smile  smile  smile 
А где вложенный цикл писать будете?
Процедура типа функция. На входе - массив с повторениями, на выходе - уже без.
Можно дополнительно отсортировать массив.

Это сообщение отредактировал(а) RubyLudwigValentin - 6.3.2023, 03:14
PM MAIL   Вверх
Akina
Дата 6.3.2023, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(RubyLudwigValentin @  6.3.2023,  04:11 Найти цитируемый пост)
А где вложенный цикл писать будете?

Вообще не буду его писать, всё сделаю в запросе. В крайнем случае есть CTE.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
RubyLudwigValentin
Дата 6.3.2023, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


magister wandal



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.3.2023
Где: Rostov-on-Don

Репутация: нет
Всего: нет



Цитата(Akina @  6.3.2023,  07:49 Найти цитируемый пост)
Вообще не буду его писать, всё сделаю в запросе. В крайнем случае есть CTE.


А как из массива прочитать DISTINCT значения? Потрактовать его как таблицу? Существует ли такая функция?
PM MAIL   Вверх
Akina
Дата 6.3.2023, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



RubyLudwigValentin, я ж выше всё рассказал.

Цитата(Akina @  5.3.2023,  23:03 Найти цитируемый пост)
UNNEST - EXCEPT - AGGREGATE


Что ещё нужно-то?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1172 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.