SQL – Garantizar al menos n usuarios únicos con 2 apariciones cada uno en la consulta.
Estoy trabajando con AWS Personalize y una de las Cuotas del servicio es tener “Al menos 1000 registros que contengan un mínimo de 25 usuarios únicos con al menos 2 registros cada uno”, sé que mis datos crudos tienen esos números, pero estoy tratando de encontrar una forma de garantizar que esos números siempre se cumplan, incluso si alguien más ejecuta la consulta en el futuro.
La forma fácil sería simplemente usar el conjunto completo de datos, pero ahora mismo estamos trabajando en un POC, así que esa no es realmente mi primera opción. He cubierto la sección de “dos registros cada uno” simplemente contando las apariciones, pero no sé cómo garantizar el mínimo de 25 usuarios.
Es importante decir que mis datos no están mezclados de ninguna manera al momento de guardarlos.
Mi consulta:
SELECT C.productid AS ITEM_ID,
A.userid AS USER_ID,
A.createdon AS “TIMESTAMP”,
B.fromaddress_countryname AS “LOCATION”
FROM A como pedidos
JOIN B como sub_pedidos EN pedidos.id_pedido = sub_pedidos.id_pedido
JOIN C como items_pedido EN pedidos.id_pedido = items_pedido.id_pedido
WHERE pedidos.userid EN (
SELECT pedidos.userid
FROM A como PEDIDOS
GROUP BY pedidos.userid
HAVING count(*) > 2
)
LIMIT 10
Uso la cláusula LIMIT para solo consultar un subconjunto ya que estoy en AWS Athena.
davy.ai
Para asegurarse de que siempre hay al menos 25 usuarios únicos en el conjunto de datos con al menos 2 registros cada uno, puede hacer lo siguiente:
Al implementar estos pasos, puede garantizar que los requisitos de cuota mínima siempre se cumplan, incluso si alguien más ejecuta la consulta en el futuro.