Por un trabajo de la U, me toco hacer un sistema de encuestas, por lo que los datos los metia en una BD, de forma que insertaba toda la respuesta en un String, el problema radica que si queria ver los datos se me regresaban asi:
| id |
respuesta |
ipaddress |
| 7 |
Saprissa |
127.0.0.1 |
| 8 |
Heredia |
127.0.0.1 |
| 9 |
Alajuela |
127.0.0.1 |
| 10 |
Cartago |
127.0.0.1 |
| 11 |
Saprissa |
127.0.0.1 |
| 12 |
Saprissa |
127.0.0.1 |
Ahora bien esos datos estan bien, hay varias formas de mostrar esos datos, el asunto es que esos mismo datos debían ser usados para hacer gráficos y lo gráficos solo entienden numeros en lugar de strings y también usa las columnas como referencia de los datos y las filas como parte de la estadística, para que los datos se mostraran en números hago un query que me cuente los datos repetidos y me los agrupe en solo uno y otra columna agrego las respuestas de esta manera
SELECT respuesta,count(respuesta) AS total FROM pregunta1 GROUP BY respuesta
Devuelve los datos asi:
| respuesta |
total |
| Saprissa |
3 |
| Heredia |
1 |
| Alajuela |
1 |
| Cartago |
1 |
La forma más facil para convertir esos datos en una columnas, es hacer select anidados (solo lo he probado con SQL Server) de esta forma:
SELECT
(SELECT COUNT(respuesta) FROM pregunta1 WHERE respuesta = 'Alajuela') as 'Alajuela',
(SELECT COUNT(respuesta) FROM pregunta1 WHERE respuesta = 'Cartago') as 'Cartago',
(SELECT COUNT(respuesta) FROM pregunta1 WHERE respuesta = 'Heredia') as 'Heredia',
(SELECT COUNT(respuesta) FROM pregunta1 WHERE respuesta = 'Saprissa') as 'Saprissa'
Devuelve como resultado:
| Alajuela |
Cartago |
Heredia |
Saprissa |
| 1 |
1 |
1 |
3 |
Voy a explicar este query primero que todo el hago el select pasado pero sin la columna respuesta, y le pongo como filtro la respuesta con el nombre exacto o si se query con like, y a todo eso nombramos la columna del nombre descriptivo de los datos devueltos, con mayor simplesa lo que esta dentro del parétesis seria el dato y lo que esta a la derecha del parentesis es el nombre de la columna, un aspecto importante es la coma al final de subquery que es un delimitador para hacer más subquery.
Es secillo al fin y al cabo es otra forma de ver los datos
.
Comentarios recientes