¿Cómo identificar quién gastó más de una cantidad determinada en cualquier período de 30 días?
Tengo una tabla que lista las transacciones de cada cliente junto con la fecha en que ocurrieron y cuánto se gastó. Lo que quiero hacer es obtener una lista de todos los clientes que gastaron £3k o más en cualquier período de 30 días.
Puedo obtener una lista de quiénes gastaron £3k o más en los últimos 30 días utilizando el código a continuación, pero no estoy seguro de cómo adaptar esto para cubrir cualquier período de 30 días. Cualquier ayuda sería apreciada, por favor!
select *
from
(
select customer_id, sum(spend) as total_spend
from transaction_table
where transaction_date between (current date - 30 days) and current date
group by customer_id
)
where total_spend >=3000
;
davy.ai
Para obtener una lista de todos los clientes que gastaron 3.000£ o más en cualquier período de 30 días, puede modificar la cláusula WHERE de la consulta anterior para usar una subconsulta que verifique la suma de gastos para cada período de 30 días de cada cliente. Algo así como esto:
La subconsulta busca la suma de gastos de cada cliente para cada fecha de transacción y verifica si esa suma es >= 3.000£ (3000). La consulta externa simplemente selecciona las filas donde la suma de gastos para cualquier período de 30 días es >= 3.000£ (3000). Esto debería darle los resultados deseados.