私は AWS Personalize を使用しており、サービスの割り当ての 1 つは、「それぞれに少なくとも 2 つのレコードを持つ 25 の一意のユーザーの最小値を含む少なくとも 1000 のレコード」を持つことです。生データにそれらの数字があることは知っていますが、将来、クエリが他の誰かによって実行されたとしても、これらの数値が常に満たされることを保証する方法を見つけてください。
簡単な方法は、完全なデータセットを使用することですが、現在、POC に向けて取り組んでいるため、最初の選択肢ではありません。出現数を数えるだけで「それぞれ 2 つのレコード」セクションをカバーしましたが、最小 25 ユーザーを保証する方法がわかりません。
保存時にデータがシャッフルされていないことは重要です。
私のクエリ
SELECT C.productid AS ITEM_ID,
A.userid AS USER_ID,
A.createdon AS "TIMESTAMP",
B.fromaddress_countryname AS "LOCATION"
FROM A AS orders
JOIN B AS sub_orders ON orders.order_id = sub_orders.order_id
JOIN C AS order_items ON orders.order_id = order_items.order_id
WHERE orders.userid IN (
SELECT orders.userid
FROM A AS ORDERS
GROUP BY orders.userid
HAVING count(*) > 2
)
LIMIT 10
私は AWS Athena にいるので、LIMIT を使用してサブセットをクエリします。