InicioInfoscript SQL Server función para calcular la moda

script SQL Server función para calcular la moda

Info1/6/2011
Buen día compañeros taringeros. aquí les dejo mi primer aporte a la comunidad. Este es un scrip en SQL Server 2008 para calcular la moda con un rango de fechas, es igual a la manera que Microsoft lo calcula por ejemplo en el EXCEL. ================================================================================== ================================================================================== ================================================================================== IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'.[fn_calc_moda]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION .[fn_calc_moda] GO CREATE FUNCTION .[fn_calc_moda](@fecha_ini DATETIME, @fecha_fin DATETIME) RETURNS DECIMAL(16,2) AS BEGIN -------------------------------------------------------------------- -- Base de Datos: ? -- Servidor: ? -- Nombre fisico: [fn_calc_moda] -- Proyecto: Personal -- Módulo: -- Modificación: 03 Dic 2010 -- Fecha: -- Descripcion: funcion para calcular la moda -------------------------------------------------------------------- --declaramos la variable que se va a regresar DECLARE @moda DECIMAL(16,2) --declaramos una variable de tipo tabla para acomodar los datos DECLARE @tabla_moda TABLE( monto DECIMAL(16,2), frecuencia INT, fecha_menor DATETIME ) --insertamos en la variable tabla los datos tniendo el monto que se va procesar INSERT INTO @tabla_moda SELECT monto, COUNT(monto), MIN(fecha) FROM operacion WHERE fecha BETWEEN @fecha_ini AND @fecha_fin GROUP BY monto --validacion para saber si existe al gun monto que se repita mas de 1 IF (SELECT MAfrecuencia) FROM @tabla_moda) > 1 BEGIN --obtenemos el monto que mas veces se repita --ordenado por fecha --asi aun que existan mas montos con la misma moda se va qa seleccionar el primero en insertarse SELECT @moda = monto FROM @tabla_moda WHERE frecuencia = (SELECT MAfrecuencia) FROM @tabla_moda) ORDER BY fecha_menor END ELSE BEGIN --si no quiere decir que no existe moda y se regresa 0.00 SET @moda = 0.00 END RETURN @moda END ================================================================================== ================================================================================== ================================================================================== La manera de utilizarlo es desde cualquier sp que se realice se puede mandar llamar de esta manera. ================================================================================== ================================================================================== ================================================================================== DECLARE @moda_calculada DECIMAL(16,2) SET @moda_calculada = dbo.fn_calc_moda(@fecha_ini,@fecha_fin) ================================================================================== ================================================================================== ================================================================================== Bueno espero que les sea de utilidad y comenten.
Datos archivados del Taringa! original
0puntos
214visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

J
JaMM_🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.