Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Recuperar y contar valores de una base de datos

Estas en el tema de Recuperar y contar valores de una base de datos en el foro de Mysql en Foros del Web. Hola a todos otra vez! Esta vez tengo una duda mas complicada: Tengo una base de datos sql con tres columnas, uno dos y tres. ...
  #1 (permalink)  
Antiguo 14/06/2012, 09:06
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 12 años, 11 meses
Puntos: 16
Pregunta Recuperar y contar valores de una base de datos

Hola a todos otra vez!
Esta vez tengo una duda mas complicada:
Tengo una base de datos sql con tres columnas, uno dos y tres. En cada una de ellas hay valores aleatorios del 1 al 10 donde cada dia voy añadiendo valores.
Ahora lo que quiero es saber cuantos unos hay en total, es decir, indiferentemente de en que columna este saber cuantos unos hay en total, igual con los doses, treses, etc.

Ejemplo de la base de datos:

Uno------Dos-----tres----cuatro
1---------4-------6-------8
3---------6-------8------11
2---------3-------5------10
etc

En este caso hay un uno, dos treses, etc.
Esa es la intención de mi programa.

Yo he conseguido contarlo en una so,a columna asi:
Código:
Select COUNT(uno) AS uno FROM tabla WHERE uno='1';
Con esto recupero cuantos unos hay en la columna uno, pero si hay algun uno en la dos, tres o cuatro no, y tambien quiero saber si hay alguno, no se si me explico...
Tambien me seria de gran ayuda si me diferan como interpretar el resultado en php!


Gracias por vuestra ayuda!
  #2 (permalink)  
Antiguo 14/06/2012, 10:20
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Recuperar y contar valores de una base de datos

Hola Moro 666...

Una manera de obtener lo que quieres sería con una suma condicional, listando todos los campos de tu tabla y verificando en cada caso si la columna contiene en número que estás buscando, es decir, contar cuantos 6's hay en la tabla podrías hacerlo de esta manera:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+------+------+--------+
  3. | uno  | dos  | tres | cuatro |
  4. +------+------+------+--------+
  5. |    1 |    4 |    6 |      8 |
  6. |    3 |    6 |    8 |     11 |
  7. |    6 |    3 |    5 |     10 |
  8. |    1 |    3 |    2 |      6 |
  9. +------+------+------+--------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT
  13.     -> SUM(IF(uno = 6, 1,
  14.     ->       IF(dos = 6, 1,
  15.     ->         IF(tres = 6, 1,
  16.     ->           IF(cuatro = 6, 1, 0)
  17.     ->           )
  18.     ->         )
  19.     ->       )
  20.     ->     ) total
  21.     -> FROM tabla;
  22. +-------+
  23. | total |
  24. +-------+
  25. |     4 |
  26. +-------+
  27. 1 row in set (0.00 sec)

Otra manera sería con la misma idea que pusiste en tu post, pero agregando un UNION para cada una de las columnas de tu tabla:

Código MySQL:
Ver original
  1. mysql> SELECT COUNT(numero) FROM
  2.     -> (SELECT uno numero FROM tabla
  3.     -> UNION ALL
  4.     -> SELECT dos numero FROM tabla
  5.     -> UNION ALL
  6.     -> SELECT tres numero FROM tabla
  7.     -> UNION ALL
  8.     -> SELECT cuatro numero FROM tabla) t
  9.     -> WHERE numero = 6;
  10. +---------------+
  11. | COUNT(numero) |
  12. +---------------+
  13. |             4 |
  14. +---------------+
  15. 1 row in set (0.00 sec)

Es importante hacer UNION ALL, para que no elimine registros duplicados.

Para dudas de PHP, acude al foro de este lenguaje, este es exclusivo de MySQL.

Saludos
Leo.
  #3 (permalink)  
Antiguo 14/06/2012, 10:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 12 años, 11 meses
Puntos: 16
Respuesta: Recuperar y contar valores de una base de datos

Brutal, cada vez que alguien que sabe me responde a mis preguntas creo que soy tonto, lo que me queda por aprender!

La duda en php no es que sea muy complicada ni nada, vamos, se generar la consulta, lo que no se hacer es imprimir-la en pantalla. Tonterias de principiantes....
  #4 (permalink)  
Antiguo 14/06/2012, 16:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 12 años, 11 meses
Puntos: 16
Respuesta: Recuperar y contar valores de una base de datos

Usando tu codigo me ha surgoido una nueva pregunta!

Mediante sql, sin pasar por php, se podrian guardar esos resultados en una tabla nueva?
  #5 (permalink)  
Antiguo 14/06/2012, 23:25
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Recuperar y contar valores de una base de datos

Claro que lo puedes hacer. Simplemente debes escribir lo siguiente:

create table NOMBRETABLA as (tu select);

Un ej:


create table CopiaClientes as (select * from clientes);

Eso crearía una nueva tabla llamada CopiaClientes, la cual contendrá todos los clientes seleccionado de la tabla clientes.

Espero que te sirva. Suerte.
  #6 (permalink)  
Antiguo 15/06/2012, 02:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 12 años, 11 meses
Puntos: 16
Respuesta: Recuperar y contar valores de una base de datos

Entonces tambien funcionaria esto con el comando UPDATE o INSERT no? (en caso de que la tabla ya este hecha)

Gracias Maestro!
  #7 (permalink)  
Antiguo 15/06/2012, 04:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Recuperar y contar valores de una base de datos

Cita:
Iniciado por moro666 Ver Mensaje
Entonces tambien funcionaria esto con el comando UPDATE o INSERT no? (en caso de que la tabla ya este hecha)

Gracias Maestro!
No exactamente.
Solo con el INSERT. El UPDATE es otro tema.

Por cierto, no se necesitan los paréntesis del SELECT para la creación de la tabla, pero además hay algunas consideraciones respecto a los tipos de dato resultantes, porque MySQL no toma los tipos de datos de sus tablas origen sino de los resultados de las columnas, lo que puede dar consecuencias raras, como columnas VARCHAR con 1 byte de ancho, o DECIMAL convertidos en INT y viceversa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 15/06/2012, 06:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 12 años, 11 meses
Puntos: 16
Respuesta: Recuperar y contar valores de una base de datos

Lo tendre en cuenta, ahora me pondre a provar todo eso, si me surge cualquier contratiempo ya te dire!

Etiquetas: php, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:57.