私は Oracle を使用していますが、解決方法がわからないという問題が発生しました。私は多くの店舗を持っており、各店舗で 3 つの商品を販売しています。各ストアからこれら 3 つのアイテムのそれぞれについてランダムなレコードを選択する必要がありますが、レコードの量は各ストアで 10 を超えてはならず、各ストアは各アイテムを少なくとも 1 つ販売する必要があります。
私が今持っている選択は、店舗ごとに10件のレコードを選択しますが、1つのアイテム(通常は最後のもの)を選択します
select *
FROM
(select store_id,item_id, product_name
row_number() over(partition by store_id order by item_id) as MyCount
from table5 order by dbms_random.value)
where MyCount<=10
各店舗で 3 つのアイテムすべてと <=10 のレコードをすべて選択するにはどうすればよいですか?
サンプルデータ:
Id Store_ID Item_ID Product_ID
------------------------------
1 11723 13048841 2
2 11723 13332688 2
3 11723 08981562 4
4 11723 08872923 4
5 11723 01030632 5
6 11723 01029557 5
7 11723 01010174 5
8 11723 01031526 5
9 11723 01032479 5
10 11723 01000285 5