Предположим, у меня есть таблицаSQL: Разделение по столбцам и случайно сортировки результатов в перегородках
DESCRIPTION SHOP
'tomato pizza' 'Joe'
'vanilla ice cream' 'Joe'
'oranges' 'Mary'
'newspapers' 'Mary'
'soap' 'Bill'
'chips' 'Joe'
...
Таким образом, каждый магазин (идентифицированная его владельцем) продает некоторые продукты, и каждый продукт появляется в таблице с текстовым описанием ,
Что я хочу сделать, это вытащить 10 продуктов из каждого магазина, случайно выбранного (для этого магазина) за один раз. Я знаю, что могу использовать ORDER BY random()
, но как я могу использовать его таким образом, что сначала происходит разделение по магазинам (GROUP BY
/PARTITION BY
?), А затем рандомизация выполняется по разделенным результатам?
Ссылаясь, в частности, на Redshift, это то, что я использую, и должно быть таким же, как синтаксис PostgreSQL.
Какие СУБД вы используете? –