Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1

TEMA: [SOLUCION]Promediar valores agrupados por usuario

[SOLUCION]Promediar valores agrupados por usuario 08 Feb 2011 03:35 #3973

  • sinclavos
  • Avatar de sinclavos Autor del tema
  • Fuera de línea
  • Fresh Boarder
  • Fresh Boarder
  • Mensajes: 14
  • Gracias recibidas: 0
Cabeciandome con lo que creía que sería mi monstruo verde descubrí que al final era más sencillo de lo que parecía, y quiero compartirlos con ustedes.

Tengo una tabla (#__notas) con dos columnas
Columna 1 = nombre de usuario
Columna 2 = notas parciales

Col 1 Col 2
Juan 5
Pedro 6
Juan 4
Pedro 5
Pedro 5
Juan 5

Quiero sacar el promedio de notas de Juan y Pedro y mostrar los promedios en una tabla en pantalla.


Con BREEZINGFORMS, Modo Clásico:

Creo un formulario llamado Totales. Creo una "Lista de Consulta" llamada "finales"
En esta lista de consulta pongo la siguiente Consulta:

global $database;

$database->setQuery(
"select avg(Col 2) AS avg,
sum(Col 2) AS sum,
count(Col 2) AS frec,
Col 1 ".
"from #__notas ".
"group by Col 1"
);
$rows = $database->loadObjectList();


Hay que reemplazar "Col 1" por el nombre de la columna donde estan los nombres o el ítem que quieran y la "Col 2" por el nombre de la columna donde están los valores que quieran promediar. Con esto llamamos y calculamos los datos dispersos de la tabla "notas" de nuestra BD.

Luego hay que crear los campos de la tabla que se quiere generar en la sección "Columnas" de nuestra "Lista de Consulta". En este caso los campos se llamaron: Nombre/Col 1; Suma/sum; Nº/frec; y Promedio/avg.

Y Listo.

El resultado es una tabla con el siguiente aspecto:


Nombre Suma Nº Promedio
Juan 54 10 5,4000000
Pedro 68 10 6,8000000

Por favor, no me pregunten como se redondean los números para quitar los ceros, porque aún no he llegado a esa parte, pero, sin desafíos (y uno que otro éxito) la vida no tendría el sabor que tiene.
Se que por ahí hay códigos que eliminan los ceros, pero no se si se podrán aplicar en este caso. Ya veremos.

Saludos community.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Última Edición: por sinclavos.

Re: [SOLUCION]Promediar valores agrupados por usuario 08 Feb 2011 04:01 #3974

  • willin
  • Avatar de willin
  • Fuera de línea
  • Administrator
  • Administrator
  • Cuidado! Ya no estoy solo...
  • Mensajes: 1897
  • Karma: 67
  • Gracias recibidas: 44
Estimado,

WOW!!! Como se nota que alguien está haciendo la tarea :) Muchas gracias por compartir tan valioso conocimiento con la comunidad, estoy seguro que a más de algún desarrollador en determinado momento le será muy últil la información.

Un cordial saludo, te felicito por tu aporte a la comunidad.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Guillermo Bravo
Administrador
Foro Joomla Chile




Re: [SOLUCION]Promediar valores agrupados por usuario 11 Feb 2011 02:59 #3994

  • sinclavos
  • Avatar de sinclavos Autor del tema
  • Fuera de línea
  • Fresh Boarder
  • Fresh Boarder
  • Mensajes: 14
  • Gracias recibidas: 0
Debo agregar un Detalle que se me olvidó:

En el Script del Formulario de la Lista de Consulta hay que colocar el siguiente script:

Piezas del Formulario / Después del Formulario / Librería
FF::ff_InitLib


Sino la consulta puede quedar en blanco, oops.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Re: [SOLUCION]Promediar valores agrupados por usuario 06 Mar 2011 21:11 #4159

hola tengo un problema casi parecido,
les explico...

tengo un formulario con los siguientes campos de ejemplo:
nombre,
telefono
direccion
correo
edad

este formulario aplicado logicamente al site de joomla osea en el frondend,

lo que yo necesito es administrar esos datos desde el frondend por decir

que cuando yo seleccione que me muestre los datos guardados por el formulario por decir que me muestre todos los datos guardados que tengan edad de 25 años y me muestre solo los que tienen 25 años.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

  • Página:
  • 1
Tiempo de carga de la página: 0.127 segundos
Gracias a Foro Kunena