Выборка Уникальных Значений Из Базы

RixPvl

Well-known member
30.11.2011
85
0
#1
Привет!
Скажите как сделать выборку уникального значения из базы, например как в MySQL disting, есть ли что нибудь подобное в Lotus?
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
наверное вид с первой категоризированной колонкой
 

RixPvl

Well-known member
30.11.2011
85
0
#5
Morpheus
Спасибо, а способа как в MySQL нет, вытащить запросом?
 

hosm

* so what *
18.05.2009
2 442
6
#6
Если я правильно поняла, что надо, то можно еще не через категорию, а у вьюхи выставить (ODBC Access) Generate unique keys in index.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#8
Привет!
Скажите как сделать выборку уникального значения из базы, например как в MySQL disting, есть ли что нибудь подобное в Lotus?
помимо совершенно справедливых указаний коллег отмечу: Домино НЕ РСУБД (в ФАК это есть), disting слово существует, но в SQL, скока "себя помню", есть distinct. Такой ощущ , что тут вы сочинили :)
и не надо приспосабливать модель РСУБД к модели доступа и хранения в Домино...
здесь наиболее близка логика key-value, что в наст. вр. обозвали NOSQL
 

RixPvl

Well-known member
30.11.2011
85
0
#9
lmike
Не не сочинил, я всего лишь просто хотел узнать если ли в лотусе подобные вещи, которые я упомянул...
а насчет disting и distinct, просто забыл как оно правильно пишется) и написал то что было на слуху) но суть я думаю вы поняли).

Но вопрос. все же остается открытым, как более правильней отобрать уникальные данные по полю из базы лотуса ну и желательно чтобы он был быстрым...
Вариант с вьшкой как предложил Morpheus этот способ является ли правильным?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#10
RixPvl "быстрым", для Домины является "всё" что индексировано, индексы сущ. для вьюшек (сортировка колонки, упрощённо, и есть индекс) самым быстрым является поиск по UNID (универсальный идентификатор документа)...
и есть реализация Digest Search (кот. "здесь" поминали не раз)
НО, уникальность значений в колонке не является обязательной, а потому - надо "фильтровать"
OKEN указала http://codeby.net/forum/threads/46263.html?vi...st&p=222162
есть сайдэффекты (конкретно - не вспомню)
Morpheus предложил способ для малого кол-ва данных, через собаки
категоризация "упрощает" получение (по навигатору) - може сразу пройтись по sibling, НО, категории усложняют индекс
как-то так ;)
само себе получение уникальных значений смысла не несёт, д.б. задача, а вот её-то вы и не озвучили
 

nvyush

Lotus team
22.04.2009
2 317
0
#11
F

FixeR

#12
RixPvl,
Можно и вручную, в принципе.
1) Получаем коллекцию документов, из которых надо вытащить значения (например, из view или db.Search).
2) Проходимся по коллекции в цикле, собираем в массив значения полей.
3) Функция ArrayUnique уберёт дубликаты из массива.
 

nvyush

Lotus team
22.04.2009
2 317
0
#13
FixeR
1) Лучше в массив сразу добавлять значения только уникальных полей, быстрее будет.
2) Есть ограничения на размер массива.