🏎️ Análisis del GP de Madrid 2026 con Python: abandonos, posiciones, puntos y campeonato de F1

Imagen
🏎️ Análisis del GP de Madrid 2026 con Python El Gran Premio de Madrid 2026 nos dejó varios datos interesantes que podemos analizar utilizando datos de Fórmula 1 y Python. En este análisis vamos a responder cuatro preguntas: 😱 ¿Quiénes abandonaron el GP de Madrid? 🔥 ¿Quién ganó más posiciones durante la carrera? 🏆 ¿Qué equipo consiguió más puntos? 📊 ¿Cuándo podría Mercedes asegurar matemáticamente el campeonato? La idea es utilizar los datos para encontrar historias que no siempre son evidentes al observar solamente el resultado final de la carrera o comparar lo que se vivio en la carrera con los datos. 😱 ¿Quiénes abandonaron el GP de Madrid 2026? No todos los pilotos consiguieron llegar a la bandera a cuadros en Madrid. El análisis de los resultados de la carrera muestra cuatro abandonos. Carlos Sainz Jr fue uno de los abandonos más destacados. El piloto de Williams comenzó desde la P20 y completó 45 vueltas. (Lastima por Sainz en su casa) Tambié...

Progress 4gl función ACCUM, SQL función SUM

Hola amigos programadores, esta semana les quiero platicar acerca de una función en lenguaje Progress 4gl que es ACCUM, esta función es un similar a SUM de SQL. Lo que hacen ambas funciones es consolidar la suma de un campo que cumpla ciertas características.


Por ejemplo si quieren saber el total de Venta facturada por un cliente, la sentencia en SQL es:




SELECT SUM(ih_invoicetotal) , ih_bill                                           
 FROM ih_hist                                                                   
 WHERE ih_domain = 'dominio'                                                    
 AND YEAR(ih_inv_date) =  2019                                                  
 GROUP BY  ih_bill   
 

El mismo ejemplo pero con sentencia de Progress 4gl es:





FOR EACH ih_hist WHERE ih_domain = 'dominio'
                               AND YEAR(ih_inv_date) = 2019      NO-LOCK                                                   BREAK BY ih_bill:                                                           
ACCUMULATE ih_invoicetotal (TOTAL BY ih_bill).                                  
IF LAST-OF(ih_hist.ih_bill) THEN                                          
   DISPLAY  ACCUM TOTAL BY ih_bil ih_invoicetotal ih_bill.                                                            
END.                                               

Como se ve en las imágenes el resultado es el mismo. Las funciones que utilizamos de Progress fueron:

  • ACCUMULATE : Esta opción nos permite ir sumando o accumulando el valor de una variable de nuestra tabla

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/accum-function.html                                   

  • TOTAL BY:  Nos indica porque campo vamos a consolidar o agrupar el total, ademas del total, también puede utilizarse  AVERAGE, COUNT, MAXIMUM,MINIMUM,
  • ACCUM TOTAL BY: Para poder mostrar el total en pantalla utilizamos esta sentencia
  • LAST-OF: Indicamos al query que cuanto termine de recorrer todos los registros que coincidan con un tipo se detenga, también existe la opción de FIRST-OF 


  • BREAK BY: Le decimos al query que vaya buscando y agrupando por un campo en la tabla de  nuestra base de datos


Como anecdota cuando yo comencé aprender Progress, buscaba como hacer las consultas en SQL pero en Progress, esto para entender la lógica primero antes de programarlo, ahora pienso la lógica independientemente del lenguaje de programación que es como debería de ser cuando programamos primero pensar el algoritmo y luego traducirlo a un lenguaje de programación.

No olvide compartirnos y seguirnos en este blog o en Facebook.

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)