Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿Funciones estadísticas para FireBird 2.0? (https://www.clubdelphi.com/foros/showthread.php?t=54015)

Angel Fernández 06-03-2008 14:46:28

¿Funciones estadísticas para FireBird 2.0?
 
Hola a todos. Estoy tratando de aplicar funciones estadísticas a un conjunto de datos de una BD Firebird 2 agrupados con la sentencia group by. Las funciones COUNT, AVG, MIN, MAX y SUM funcionan perfectamente pero STDEV (desviación típica) y VAR (varianza) no las reconoce, sale el error "Function unknown".

¿Alguien sabe si Firebird 2 tiene más funciones estadísticas aparte de las indicadas (count, avg, min, max y sum)?

Gracias y un saludo al foro.

RolphyReyes 06-03-2008 15:06:51

Saludos.

Esas funciones son las que trae Firebird por defecto. Para más funciones debes de crearlas tú, lo puedes hacer desde Delphi o tienes otra solución y es instalar las FreeAdhocUDF http://www.udf.adhoc-data.de/index_eng.html

Estas librerías contienen bastantes funciones, no se si están las que necesitas, échales un vistazo.

Hasta luego.

Angel Fernández 06-03-2008 15:29:53

Gracias Reyes
 
Gracias por tu respuesta. En un primer vistazo al enlace que me has indicado no encuentro estas funciones que busco. Ya lo miro más detenidamente y os digo algo.

Saludos

RolphyReyes 06-03-2008 16:06:39

Siempre Angel
 
Recuerda que también tienes la opción de crearlas desde Delphi, digo este lenguaje porque asumo que es el que estas usando.

Para documentación sobre como crear UDF (funciones) ve a http://www.ibphoenix.com

Hasta luego.

jachguate 06-03-2008 17:08:24

Hasta donde tengo entendido, no es posible aún crear aggregate functions dentro de un UDF, y de hecho, tampoco está en el roadmap... por lo que seguramente todavía tardaremos en ver esta característica implementada.

En el tracker, ya hay quien la ha solicitado.

Hasta luego.

;)

RolphyReyes 06-03-2008 18:45:45

Saludos.

Osea no se puede realizar una UDF de calculo matemático? (No entendí bien tu planteamiento)

jachguate 07-03-2008 02:23:43

Se puede crear una UDF que haga cualquier cosa, pero no una función agregada. Es decir, las operaciones podrán realizarse solo sobre un registro del conjunto de datos en el que se opera la función, y no sobre un conjunto de registros, como ocurre en el caso de sum(), avg(), etc.

En otras palabras, no podría calcularse la desviación o la varianza de esta manera.

Hasta luego.

;)

Angel Fernández 08-03-2008 10:43:42

Descorazonador mensaje el del jachguate. Si él dice que no se puede hacer, difícilmente voy a llevarle yo la contraria con mis escasos conocimientos.

En mi opinión eso es un fallo de Firebird, máxime cuando las funciones stdev y var sí que son aceptadas en otros motores sql. Espero que la versión 3 corrija estos fallos.

En fín, es lo que tiene el software libre...

Gracias por vuestra colaboración.

jam 10-03-2008 09:14:55

Siempre se puede crear un procemimiento almacenado que calcule esos valores

Lepe 10-03-2008 10:07:08

¿Fallo? ejem, Fallo si lo tuviese implementado y no diera el valor correcto, jeje.

Se supone que es un "todo" ;)

Saludos

jachguate 11-03-2008 04:49:10

Cita:

Empezado por Angel Fernández (Mensaje 271718)
En mi opinión eso es un fallo de Firebird, máxime cuando las funciones stdev y var sí que son aceptadas en otros motores sql. Espero que la versión 3 corrija estos fallos.

No creo que sea un fallo... mas bien, una carencia, pero creeme, todos las tienen en mayor o menor grado.
Cita:

Empezado por Angel Fernández (Mensaje 271718)
En fín, es lo que tiene el software libre...

No entiendo muy bien a que va este comentario. En firebird, podes vos mismo solicitar que se incluya cierta funcionalidad en el motor... y la gente de desarrollo evaluará si es algo que se considera de beneficio para el proyecto, tarde o temprano lo harán.

Pero no solo eso... podrías hacerlo vos mismo o contratar a alguien que lo haga por vos... es lo que tiene el software libre que no tiene el privativo: libertad de modificar y adaptar a tus necesidades.

Si tomas lo que te costaría un par de licencias de Oracle o de SQL Server, seguro hasta te queda para unos refrescos... y podrás hacer tantas instalaciones como te sea necesario sin pasar nuevamente por caja. ;)

Hasta luego.

;)

Angel Fernández 16-03-2008 01:42:04

Cierto, más que "fallo", la palabra exacta es carencia. En cuanto a mi comentario sobre el software libre iba en el sentido de que uno no puede quejarse a los autores porque bastante hacen ya poniendo su trabajo de forma poco o nada remunerada como para encima ir diciendo "se te ha olvidado poner esto".
Firebird es, me parece, un gran motor. Bien pensado no tiene por qué tener funciones estadísticas avanzadas porque para eso ya están programas específicos como las hojas de cálculo que sí hacen estas cosas pero que no pueden almacenar millones de datos.

Saludos al foro. Gracias por vuestros comentarios.

RONPABLO 16-03-2008 04:25:49

Cita:

Empezado por Angel Fernández
En cuanto a mi comentario sobre el software libre iba en el sentido de que uno no puede quejarse a los autores porque bastante hacen ya poniendo su trabajo de forma poco o nada remunerada como para encima ir diciendo "se te ha olvidado poner esto".

yo creo que los buenos proyectos están pendientes de sugerencias y si son para mejorar mejor aun, creo que te podrías poner en contacto con los grupos de desarrollo de firebird y dejar dicha sugerencia la pueden encontrar atractiva y si no, solo perderás unos 30 minutos traduciendo tu sugerencia...


La franja horaria es GMT +2. Ahora son las 09:12:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi