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

AYUDA!!! dividir una columna en varias

Estas en el tema de AYUDA!!! dividir una columna en varias en el foro de Mysql en Foros del Web. HOLA a todos Tengo una tabla que consiste en una sola columna pero al escribirla en MySQL quiero que esta se convierta en varias columnas ...
  #1 (permalink)  
Antiguo 03/11/2010, 08:33
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
AYUDA!!! dividir una columna en varias

HOLA a todos
Tengo una tabla que consiste en una sola columna
pero al escribirla en MySQL
quiero que esta se convierta en varias columnas
limitada por un número de renglones
por ejemplo

Columna_unica
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12



quiero obtener al final algo como:
col1 col2 col3
a1 a5 a9
a2 a6 a10
a3 a7 a11
a4 a8 a12


gracias
  #2 (permalink)  
Antiguo 03/11/2010, 08:54
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: AYUDA!!! dividir una columna en varias

Mostrar esas columnas en donde ¿?¿?
Estamos hablando de una web (html, php ??)
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 03/11/2010, 08:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: AYUDA!!! dividir una columna en varias

jursco mysql no es excel.
Lo que tratas de hacer es un insulto contra el concepto de bases de datos relacionales.
Eso si estas hablando de hacer esto en mysql que es lo que he entendido.

Si lo que quieres hacer es mostrar esto en un lenguaje (como menciona masterojitos) tu pregunta deberías postearla en el foro correspondiente al lenguaje.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 03/11/2010, 09:40
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: AYUDA!!! dividir una columna en varias

Pues es en MySQL
y no con ningún otro lenguaje



He puesto un ejemplo con 12, pero en realidad tengo millones de renglones =S en una columna porque así me lo da un programa que emite el archivo y quiero acomodarlos en diversas columnas porque representan diferente tipo de información

¿Porqué esto representa una ofensa?
Alguien puede ayudar,e

seguro Excel no puede leer cientos de millones de columnas...

saludos
  #5 (permalink)  
Antiguo 03/11/2010, 09:53
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: AYUDA!!! dividir una columna en varias

Cita:
He puesto un ejemplo con 12, pero en realidad tengo millones de renglones =S en una columna porque así me lo da un programa que emite el archivo y quiero acomodarlos en diversas columnas porque representan diferente tipo de información
Infortunadamente solamente puedes hacer eso en una aplicación, o bien por medio de stored procedures, pero en cualquier caso primero deberías crear la base de datos que pudiese almacenar la información una vez depurada.
No existe una consulta o un método para lo que tienes que hacer; el único camino sería y es analizar los datos y crear la base de soporte, y luego implementar la carga... Exactamente lo qe te dije al principio.
Pero como se trata de un modelo específico, sin tener acceso al proyecto completo, a las fuentes de da,tos y a tus recursos, no hay mucho que podamos decirte ni aportarte.
Este caso requiere un modelado específico, y eso es lo que queda en tus manos.

Si quieres ayuda, entonces deberás darnos información real y específica sobre lo que se trata. En abstracto es imposible.

Cita:
¿Porqué esto representa una ofensa?
Porque lo que ponías como ejemplo es cualquier cosa menos una base de datos relacional. Por eso parece una cargada.
Ni siquiera la fuente de datos parece tener nada que tenga que ver con una tabla relacional o normalizada, y el resultado, tal y como lo pones, parece más una colección de datos en Excel que un resultado producto del análisis formal de los datos.

Pero, como te dije, si quieres ayuda, empieza por aportar el caso real y no uno imaginario...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 03/11/2010, 12:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

Buenos días jursco:

Se me ocurre que puedes hacer algo como lo siguiente:

Código MySQL:
Ver original
  1. #Creamos una tabla de prueba
  2. CREATE TABLE Tabla_Prueba (columna varchar(3));
  3.  
  4. #Insertamos los valores de prueba
  5.  
  6. insert into Tabla_Prueba values ('a1'), ('a2'),('a3'),('a4'),('a5'),('a6'),('a7'),('a8'),('a9'),('a10'),('a11'),('a12');
  7.  
  8. #Verificamos cómo se muestran los datos con un select normal
  9. SELECT * FROM Tabla_Prueba;
  10.  
  11. #'Dividimos' la columna en tres columnas y mostramos la consulta
  12. SELECT T1.COLUMNA, T2.COLUMNA, T3.COLUMNA FROM
  13. (
  14. SELECT @rownum:=@rownum+1 idRenglon, columna  
  15. FROM Tabla_Prueba, (SELECT @rownum:=0) R1 LIMIT 0, 4
  16. ) T1 INNER JOIN
  17. (
  18. SELECT @rownum2:=@rownum2+1 idRenglon, columna  
  19. FROM Tabla_Prueba, (SELECT @rownum2:=0) R2 LIMIT 4, 4
  20. ) T2 ON T1.idRenglon = T2.idRenglon
  21. (
  22. SELECT @rownum3:=@rownum3+1 idRenglon, columna  
  23. FROM Tabla_Prueba, (SELECT @rownum3:=0) R3 LIMIT 8, 4
  24. )T3 ON T1.idRenglon = T3.idRenglon;
  25.  
  26. #Borramos la tabla que creamos de ejemplo
  27. DROP TABLE Tabla_Prueba;

Lo que hace la consulta es seleccionar cada columna como una tabla, y asignarles un idRenglon, de tal manera que puedas hacer un INNER JOIN, es decir, las subconsultas te regresan algo como esto:

Código:
T1
idRenglon|Columna
-------------------------
1|a1
2|a2
3|a3
4|a4

T2
idRenglon|Columna
-------------------------
1|a5
2|a6
3|a7
4|a8

T3
idRenglon|Columna
-------------------------
1|a9
2|a10
3|a11
4|a12

Por lo tanto la salida queda de esta manera:
Código:
Col1|Col2|Col3
----------------------------
a1|a5|a9
a2|a6|a10
a3|a7|a11
a4|a8|a12
Como vez no hace falta utilizar ningún procedimiento almacenado y sólo estoy utilizando código SQL. Si quisieras más columnas se deberían hacer más subconsultas y para manejar el número de renglones a mostrar pues sería cuestión de cambiar los valores del LIMIT.

Como dices que manejas millones de registros no sé que tan conveniente sea hacer esto, es cuestión que lo pruebes y nos comentes. Puede ser que la consulta no sea la más óptima, pero fue lo primero que se me ocurrió.

Saludos
Leo.

------------------------------------
El ignorante afirma, el sabio duda y reflexiona
Aristóteles
  #7 (permalink)  
Antiguo 03/11/2010, 12:16
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: AYUDA!!! dividir una columna en varias

Interesante ejercicio, leonardo, pero presta atención a lo que dice en el post:
Cita:
quiero acomodarlos en diversas columnas porque representan diferente tipo de información
De esto se infiere que lo que ha puesto en el ejemplo no muestra lo que realmente existe en esa tabla, ni tampoco es la cantidad de columnas.
Tal y como lo plantea, esa tabla puede tener el volcado de datos de facturación de un comercio, la toma de velocidades y posiciones de un GPS, la traza de una maquina herramienta, las posiciones de satélites, la lista de empleados de una empresa, el listado de entradas y salidas de móviles por sensores de puertas, reportes de pedidos de análisis bioquímicos, etc., etc.
Es decir: podría ser una tabla de cualquier cosa, y por eso mismo es que le digo que sin información precisa y real, no se puede hacer nada.
Necesitamos saber qué información es para saber cómo crear el proceso que normalice esos datos en tablas diferentes.

Cualquier otra cosa es hablar en abstracto.
__________________
¿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 03/11/2010, 12:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

Muy completo comentario compañero gnzsoloyo

Cita:
De esto se infiere que lo que ha puesto en el ejemplo no muestra lo que realmente existe en esa tabla
Tal vez yo no tengo la capacidad de usted para "inferir" todo lo que usted visualizó al leer el comentario del posteo, pero justamente porque no sé que tipo de información maneja ni si su BD está normalizada o no, me enfoqué sólo en la información que el compañero jursco proporcionó para darle una consulta que obtenga lo que quiere de salida.

No me considero ni por mucho un experto en MySQL, al contrario, apenas estoy comenzando a trabajar con este DBMS, pero si lo que escribí le pudo molestar a usted o otros forista le pido una disculpa, sin embargo creo que quién debe juzgar si la consulta le sirve o no es justamente el compañero que lanzó la pregunta no lo cree así?

Y como sugerencia, evita poner frases como "presta atención a lo que dice en el post", sinceramente me resultó ofensiva y denigrante.

Saludos
Leo.
  #9 (permalink)  
Antiguo 03/11/2010, 12:45
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: AYUDA!!! dividir una columna en varias

Cita:
Y como sugerencia, evita poner frases como "presta atención a lo que dice en el post", sinceramente me resultó ofensiva y denigrante.
Quizas si.... pero si un forista ve que alguien responde algo que no tiene que ver con lo que realmente quiere el usuario.... creo que tiene el derecho en decir que leas con atencion el post.

Saludos ^^
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 03/11/2010, 12:53
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: AYUDA!!! dividir una columna en varias

leonardo no lo tomes a mal.
Mi perspectiva del comentario de gnzsoloyo fue que le pareció interesante tu ejercicio. (En realidad a mi también) pero que deacuerdo a lo que trata de decir jursco no se acomoda muy bien a lo que necesita.

Mi perspectiva de la pregunta es que jursco quiere desde un lenguaje de programación hacer una consulta de tipo SELECT *FROM tabla y que le muestre tal como quiere los resultados. Y de eso no se trata una base de datos relacional. El almacenamiento debe ser abstracto para el usuario, pero debe ser consistente.

He leído algunas respuestas que das en el foro de oracle y en este y son muy buenas. No te sientas atacado por este tipo de comentarios que ha mi juicio nunca fue intención de gnzsoloyo denigrar tu aporte.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 03/11/2010, 13:44
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

masterojitos:

Cita:
creo que tiene el derecho en decir que leas con atencion el post
cualquier Forista tiene el derecho de decirle a otro que está equivocado o que no es lo que se está solicitando, pero NUNCA TENDRÁ DERECHO A OFENDER y repito que el comentario gnzsoloyo me pareció ofensivo y denigrante.

huesos52:

Gracias por los comentarios.

Leo.
  #12 (permalink)  
Antiguo 03/11/2010, 19:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: AYUDA!!! dividir una columna en varias

¡LEO! ¡me salvaste la vidaaaa! ¡Muchísimas gracias!
justo ha sido una solución para mi base de datos.
agradezco infinitamente el tiempo que te tomaste =)
  #13 (permalink)  
Antiguo 04/11/2010, 08:20
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: AYUDA!!! dividir una columna en varias

jursco ???
Explicas como por favor ???

Como sera tu Base de datos... OMG
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #14 (permalink)  
Antiguo 04/11/2010, 09:25
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

Cita:
Iniciado por jursco Ver Mensaje
¡LEO! ¡me salvaste la vidaaaa! ¡Muchísimas gracias!
justo ha sido una solución para mi base de datos.
agradezco infinitamente el tiempo que te tomaste =)
Me alegra que te haya servido de algo el código jursco. Después de todo no estaba tan equivocado verdad???

Saludos
Leo.
  #15 (permalink)  
Antiguo 04/11/2010, 09:49
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: AYUDA!!! dividir una columna en varias

Nadie dijo que el código estuviese equivocado. Incluso te dije que como ejercicio era interesante.
Lo que yo decía es que la información era insuficiente para poder hacer un trabajo de normalización, como parecía ser el problema, ya que el ejemplo parecía una abstracción.

No respondió lo que le pregunté y tampoco nos ha mostrado exactamente cómo adaptó tu ejemplo a lo que el necesitaba, lo que sería un buen feed-back para este post. A fin de cuentas, su caso nos podría enseñar algo para le futuro.
¿No te parece?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 04/11/2010, 10:58
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

Buenos días gnzsoloyo, no quiero entrar en más polémica pero te vuelvo a repetir el motivo de mi molestia por tu comentario:

Cita:
Evita poner frases como "presta atención a lo que dice en el post", sinceramente me resultó ofensiva y denigrante.
No sé que quisiste insinuar pero a mi me sonó como "mira, ni siquiera sabes leer", y más por el hecho de que ni siquiera permitiste que fuera el autor del post el que hiciera las observaciones pertinentes. Igual y estoy sobrevalorando el comentario y por lo mismo no pienso continuar con esto, pero sinceramente espero que consideres mi petición.

Leo.
  #17 (permalink)  
Antiguo 04/11/2010, 12:14
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: AYUDA!!! dividir una columna en varias

Leonardo, te respondí por mensaje privado, que ya deberías haber recibido. Lo hice así porque consideraba que este tipo de cosas no deben tratarse en una discusión pública.
Lo único que diré públicamente es que si hubiese querido decirte eso no lo habría hecho con insinuaciones, te lo hubiese dicho directamente.
Como no lo dije, esas intenciones no me pertenecen ni son habituales en mí, como podrías comprobar leyendo los post que escribo. La única intención de esa frase (que yo considero absolutamente neutra) era resaltar una parte del post original que a mi entender se te estaba pasando por alto.

No es la primera vez que le hago notar a alguien un detalle semejante de esa forma, y hasta ahora la mayoría de las veces la respuesta había sido que se les había escapado o lo habían leído muy por encima y no le dieron importancia; en el resto de los casos la respuesta fue que lo vieron, pero no estaban de acuerdo conmigo por X, Y y Z razones, que podían o no ser válidas. Era una cuestión de formas de analizar y resolver un problema.

Lo que yo no recuerdo es que alguno se haya molestado por una observación expresada en esa forma, por lo que para mí, al decir de mi tierra, "te estás yendo de mambo". No era para tomarselo así.

En cualquier caso, lamento haber herido tu sensibilidad, pero te has equivocado de punta a punta: Ese no era el significado de la frase.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #18 (permalink)  
Antiguo 04/11/2010, 14:32
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: AYUDA!!! dividir una columna en varias

Aclarado el punto... y no hay más que hablar.

Saludos
Leo.

Etiquetas: columnas, dividir
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:44.