Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres, intarray. Функция нахождения количества одинаковых элементов в массивах / 2 сообщений из 2, страница 1 из 1
28.01.2014, 11:19:03
    #38540187
marvinorez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Postgres, intarray. Функция нахождения количества одинаковых элементов в массивах
В ходе работы над проектом, возникла задача поиска строки содержащей массив целых чисел максимально пересекающийся с заданным.

Например:

табличка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table trash.arrays
(
id int,
adata int[]
);

insert into trash.arrays
select i, array_agg((random()*5)::int)
from generate_series(1, 10) i, generate_series(1,5) j
group by i;



исходный массив: '{1, 2, 3, 4}'::INT[]

Код: plsql
1.
2.
3.
select intarray_similar('{1, 2, 3, 4}'::INT[], adata) as sim, id
from trash.arrays
order by sim desc 



Запрос выводит строки из таблицы и сортирует по максимальному пересечению с заданным массивом

В приложении патч для intarray добавляющий фукцию intarray_similar
...
Рейтинг: 0 / 0
28.01.2014, 11:24:06
    #38540206
marvinorez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Postgres, intarray. Функция нахождения количества одинаковых элементов в массивах
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres, intarray. Функция нахождения количества одинаковых элементов в массивах / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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