es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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
;
Tags:  ,

Answer

  1. Avatar for 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:

    select  *
    from
            (
            select      customer_id, sum(spend) as total_spend, transaction_date,
                        (
                            select  sum(spend)
                            from    transaction_table t2
                            where   t2.customer_id = t1.customer_id
                                    and t2.transaction_date between t1.transaction_date - 29 days and t1.transaction_date
                        ) as total_spend_30
            from        transaction_table t1
            group by    customer_id, transaction_date
            )
    where   total_spend_30 >= 3000
    ;
    

    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.

Comments are closed.