Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / запрос на / 3 сообщений из 3, страница 1 из 1
09.04.2010, 10:53
    #36570092
Al.x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на
помогите составить запрос, есть таблица
id group_id item
--------------------

необходимо из нее выбрать по заданным group_id заданное количество случайных, неповторяющихся item (количество может быть разным для каждого group_id) и все это множество в конце отсортировать GROUP BY random() - т.е. в рандомном порядке

подозреваю, что запрос должен составляться динамически с использованием UNIONов, да вот только, насколько я знаю, не поддерживается группировка внутри подзапросов да и с LIMITами внутри подзапросов облом
что делать, как быть?
...
Рейтинг: 0 / 0
09.04.2010, 10:56
    #36570101
Al.x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на
прошу прощения, конечно же вместо GROUP BY, следует читать ORDER BY
...
Рейтинг: 0 / 0
12.04.2010, 10:30
    #36573454
Al.x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на
Короче, получилось только так:
Код: plaintext
1.
2.
3.
4.
5.
SELECT T1.item FROM
(SELECT item from tbl WHERE group_id= 1  ORDER BY random() LIMIT  5 ) as T1
UNION
SELECT T2.item FROM
(SELECT item from tbl WHERE group_id= 2  ORDER BY random() LIMIT  2 ) as T2
...и т.д. - строчка строится динамически, в зависимости от заданного количества group_id и LIMITов для каждого из них, однако, не происходит окончательного перемешивания всей выборки
пришлось решить вопрос доп. функцией на клиенте, выдающей перемешанную случайно последовательность из n последовательных чисел и выдергиванием в таком случайном порядке itemов.
если есть варианты как последнюю операцию сделать в запросе (без UDFки)... прошу поделиться опытом...
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / запрос на / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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