SQL - Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

 
Vista:
sin imagen de perfil

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Xavi (7 intervenciones) el 04/01/2023 14:50:58
Buenas,

Quiero calcular el número de clientes que han realizado más de 1 compra en un periodo inferior a 1 mes. Para ello tengo el siguiente dataset:


Dataset_Transacciones

Para el caso concreto, debería obtener que el cliente 25 ha realizado 2 compras en 1 periodo inferior a 1 mes así como también el cliente 43.

Sin embargo, no consigo saber como contar las compras por mes para cada cliente y evaluarlo si estas han sido en un periodo inferior a 1 mes. Cómo podría hacerlo?

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Isaias (1921 intervenciones) el 04/01/2023 18:19:39
¿En que motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Xavi (7 intervenciones) el 04/01/2023 18:31:25
El motor de base de datos es Oracle (SQL Developer)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Isaias (1921 intervenciones) el 04/01/2023 20:52:56
La columna DATE_MOVE como que esta rara, ¿que formato tiene?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Xavi (7 intervenciones) el 04/01/2023 20:58:54
La columna DATE_MOVE es de tipo DATE y tiene el formato DD/MM/YYYY
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Xavi (7 intervenciones) el 04/01/2023 23:20:21
¿Pudiste echarle un vistazo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por gilman (103 intervenciones) el 05/01/2023 08:54:15
Suponiendo que contamos el mes como los 30 días anteriores a la fecha del sistema, y que la tabla se llama TRANSACTIONS:
1
2
3
4
5
SELECT CUSTOMER_ID
    FROM TRANSACTIONS
   WHERE DATE_MOVE >= TRUNC (SYSDATE) - 30
GROUP BY CUSTOMER_ID
  HAVING COUNT (TRANSACTION_ID) > 2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por Xavi (7 intervenciones) el 05/01/2023 09:06:50
Por qué supones esto? "contamos el mes como los 30 días anteriores a la fecha del sistema". Para el conjunto de datos en cuestión esto no funcionaria pues estamos evaluando datos del año 2017 y estamos en 2023, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calcular el número de clientes con más de 1 compra en un periodo de 1 mes

Publicado por gilman (103 intervenciones) el 06/01/2023 09:14:05
Quizás me he pasado, suponiendo, pero no me había quedado clara la pregunta, si lo que quieres es hacer el calculo, por ejemplo en mayo del 2017 cambia la WHERE por:
1
WHERE TO_CHAR(DATE_MOVE, 'YYYYMM') = '201705'
y la consulta debería ser la misma.
Si lo que quieres es los movimientos anteriores para una fecha determinada, 03/05/2017, por ejemplo, cambia la WHERE por:
1
WHERE DATE_MOVE >= TO_DATE('03/05/2017', 'DD/MM/YYYY')  - 30
que considera los meses como un periodo de 30 días.
Hay mas posibilidades, si especificas un poco más lo que quieres podría ver cual es la WHERE que necesitas, en todo caso solo debería ser necesario cambiar eso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar