powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Выборка с учетом фактора случайности
8 сообщений из 8, страница 1 из 1
Выборка с учетом фактора случайности
    #34055601
Negator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Посоветуйте пожалуйста как реализовать такое:

prty|value
1|10
1|7
2|45
2|36
2|89
3|5
4|35
4|76

Нужно из данной таблицы сделать выборку таким образом, чтобы из набора строк с одинаковым prty была выбрана одна - случайная. Т.е. например мы можем получить

1|10
2|36
3|5
4|35

или

1|1
2|89
3|5
4|76

Спасибо!
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34056044
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак, пока как минимум не будет озвучено, для какой СУБД (имя, номер версии).
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34056839
Negator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хмм, вообще ASA 7,

но в первую очередь интересует сам подход к решению такой задачи. Т.е. чем переносимее решение окажется тем лучше.
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34058242
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select distinct prty, (select first value from t as t2 where t1.prty = t2.prty order by rand()) from t as t1 order by prty
Примерно так. Но лучше все же подумать еще раз и убрать требование случайности.

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34072346
Negator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не получится так к сожалению :-(

ORDER BY не работает в подзапросах. Есть какие-нибудь другие варианты?
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34072358
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда сделайте в лоб в ХП. Заносите данные во временную таблицу с полем типа autoincrement и выбирайте из нее значение с ключем инициализированным rand. Заодно появится реализовать любой закон распределения.
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34072555
Negator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению сама суть задачки в том, чтобы сделать ее одним запросом. Неужели нереально?

Я попробовал так:

SELECT
DISTINCT prty,
(
SELECT value FROM t WHERE RAND(main.prty * DATEPART(second, getdate())) =
(SELECT MAX(RAND(prty * DATEPART(second, getdate()))) FROM t WHERE prty = main.prty)
)
FROM
t main
ORDER BY prty;

Жуткая конструкция, но к сожалению и она не прокатила - при большой размерности оказалось что дата может "уйти" и тогда вообще ничего не выберется.

Не могу никак придумать как бы еще ловко так инициализировать RAND внутри запроса, чтобы число-зерно было
...
Рейтинг: 0 / 0
Выборка с учетом фактора случайности
    #34073232
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Negator wrote:

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

А зачем? Некоторые вещи очень неудобно запихивать в один запрос.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Выборка с учетом фактора случайности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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