IIC2440 / Syllabus-2023-1

22 stars 2 forks source link

Pregunta 3.3 #2

Open lewebe opened 1 year ago

lewebe commented 1 year ago

Hola! No entiendo muy bien lo que piden en la pregunta 3.3. Debo contar la cantidad de filas con id_compra distintos para cada dia de febrero y despues sacar la media movil de esta nueva columna? A eso se refiere con "total de ventas para cada día de febrero" de lo que hay que calcular la media movil?

Gracias!

fbarrosalcalde commented 1 year ago

Tengo la misma duda!

alanezz commented 1 year ago

El total de ventas para un día es el total de venta en plata. Hay que sacar cuanta plata ganó la tienda por día y luego calcular la media móvil.

lewebe commented 1 year ago

@alanezz Perfecto, muchas gracias! Para esta pregunta es necesario usar el PARTITION BY ? Porque ya tengo la tabla con cada día y total de ventas de ese dia, pero si a esa tabla le hago una partición por fecha, usar los comandos de ROWS BETWEEN... no me funciona ya que la partición determina que cada ventana es de tamaño 1 (una fecha = una ventana) por lo que la media me queda siempre el mismo valor (no hay 2 valores anteriores ni 2 posteriores en ninguna ventana, solo tienen un valor cada una)

Gracias!

alanezz commented 1 year ago

Eso es parte de la pregunta 😶 Pero efectivamente, puedes usar el OVER sin entregar un PARTITION BY. En este caso necesitas solo saber el orden de las ventas.

lewebe commented 1 year ago

Yap, lo sospechaba jajaja. Pero con esto surge otra duda: es la clausula OVER la que define una ventana? O la clausula PARTITION BY ?

alanezz commented 1 year ago

Es el OVER. El PARTITION BY te ayuda a definir los subconjuntos de datos sobre los que aplicarás la función.

lewebe commented 1 year ago

Quizás mañana lo pregunte en clases 😅 parece que me estoy enredando un poco, porque estoy tomando el termino "ventana" como sinónimo de "subconjunto de datos". De todas formas, muchísimas gracias por la ayuda y la aclaración!

alanezz commented 1 year ago

La verdad yo nunca me he detenido tanto a pensar qué es una vertana. Si lees esto te vas a dar cuenta que la función que se aplica es la window function, mientras que la ventana es todo lo que va dentro del OVER (de hecho cuando defines una ventana con WINDOW, defines lo que iría dentro de uno o más OVER en el SELECT).

En el artículo que te mande, al subconjunto móvil le llaman "frame", y los frame van recorriendo cada una de las particiones en orden.

Pero respondiendo a tu pregunta, según la sintaxis de SQL, la ventana es lo que va dentro del OVER.