1

私は 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
4

1 に答える 1