Habitualmente utilizamos la sentencia SELECT para obtener y analizar información de la base de datos.
Pero lo utilizamos ignorando posibles mejoras que nos haría más sencillo el análisis de los datos, podríamos mejorar esta sentencia creando unas sencillas gráficas que se invocarán en las sentencias SELECT.
Aquí os dejo este sencillo ejemplo:
mysql> SELECT Nombre, Valor FROM Meses;
+-----------+---------+
| Name | Value |
+-----------+---------+
| Enero | 379.385 |
| Febrero | 906.076 |
| Marzo | 392.224 |
| Abril | 242.893 |
| Mayo | 37.7936 |
| Junio | 460.288 |
| Julio | 188.06 |
| Agosto | 559.437 |
| Septiembre| 233.005 |
| Octubre | 486.714 |
| Noviembre | 734.555 |
| Diciembre | 212.632 |
+-----------+---------+
12 rows in set (0.00 sec)
Para generar esas simples gráficas ya mencionadas, tendremos que ejecutar la siguiente consulta...
mysql> select Nombre, REPEAT("#", Valor/20.0+1) Grafica FROM Mes;
+-----------+------------------------------------------------+
| Nombre | Grafica |
+-----------+------------------------------------------------+
| Enero | #################### |
| Febrero | ############################################## |
| Marzo | ##################### |
| Abril | ############# |
| Mayo | ### |
| Junio | ######################## |
| Julio | ########## |
| Agosto | ############################# |
| Septiembre| ############# |
| Octubre | ######################### |
| Noviembre | ###################################### |
| Dicembre | ############ |
+-----------+------------------------------------------------+
12 rows in set (0.00 sec)
Cómo habrás podido deducir dentro de la funcion REPEAT podrás definir la escala que definira el tamaño de las gráficas.
A primera vista puede parecer una tontería pero es una herramienta tan simple cómo útil a la hora de analizar información.
Enlaces Relacionados
- Muestra gráficas con MySql
- Consejos para planificar una aplicación web
- ¿Cómo ordenar datos?
- El futuro de PHP
- ¿Porqué MySQL es lento con grandes tablas?
- Claves foráneas en un clúster MySQL
- Test de algunas funciones Php
- Reconocer texto en imágenes con Php (phpOcr)
- Perl se hace viejo... 20 años
- CodeIgniter, Framework PHP





Duda.
Hola, a lo que veo la cantidad de caracteres '#' se genera dividiendo el valor actual entre 20 (en este ejemplo), pero que sucede si nuestros valores se encuentran en un rango demasiado grande (por ejemplo con valores que van desde el 200,000,000 hasta el 15) el dividir sobre 20 o cualquier numero estatico seria inutil no?
He intentado hacer una regla de tres [¿porcentaje? = (actual * 100) / maximo] pero me muestra un error. Tomando el ejemplo anterior la sentencia quedaria asi:
SELECT Nombre, Valor, REPEAT("#", ((Valor*100) / MAX(Valor))) AS 'Relacion'FROM Tabla;
En mi caso particular utilizo la funcion count() para obtener el numero de veces que un campo es elegido en una tabla y deseo presentar el porcentaje mediante numero y grafica, la sentencia SQL es:
SELECT
Directorios AS 'GENERO',
COUNT(*) AS 'TOTAL ELEGIDO',
REPEAT("*", ((COUNT(*)*100) / MAX(COUNT(*))) AS 'GRAFICA'
FROM playlist
GROUP BY Directorios ORDER BY ELEGIDO DESC
Alguien podria decirme que estoy haciendo mal? :P
Hmm, interesante
Ja, ¿Problema matemático? que buena idea ;-)
Por cierto tambií©n muy buena la idea de las gráficas, jeje. En un principio lo leí como si fuera algo muy profesional o agradable a la vista, pero ahora que termino de leerlo he terminado con una sonrisa de oreja a oreja jaja.
Y la fuente...
Original : http://www.squarebits.com/blog/2006/11/generate_simple.html
Interesante
Nunca me había planteado este tema. Lo tendrí© en cuenta.
muy útil
Mola mazo
Enviar un comentario nuevo