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

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

подозреваю, что запрос должен составляться динамически с использованием UNIONов, да вот только, насколько я знаю, не поддерживается группировка внутри подзапросов да и с LIMITами внутри подзапросов облом
что делать, как быть?
...
Рейтинг: 0 / 0
запрос на
    #36570101
Al.x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прощения, конечно же вместо GROUP BY, следует читать ORDER BY
...
Рейтинг: 0 / 0
запрос на
    #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
3 сообщений из 3, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / запрос на
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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