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

Equivalente a AVG pero para texto

Estas en el tema de Equivalente a AVG pero para texto en el foro de PostgreSQL en Foros del Web. Buenas foro: Dentro de un mismo campo, para que se efectúe algo así como un factor común de aquellas cadenas de texto semejantes: ¿existe algún ...
  #1 (permalink)  
Antiguo 07/03/2009, 08:57
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Equivalente a AVG pero para texto

Buenas foro:

Dentro de un mismo campo, para que se efectúe algo así como un factor común de aquellas cadenas de texto semejantes: ¿existe algún comando equivalente a AVG (quien solo trabaja con campos numéricos) pero para texto?.

Algo así:
Demos por hecho que esto es el contenido de varias tuplas en un mismo campo:
Cita:
Erase una vez en america
una vez en mi casa
Se una vez tu mismo
... poder obtener como resultado: "una vez". Muchas gracias.

Última edición por nekcab; 07/03/2009 a las 09:46
  #2 (permalink)  
Antiguo 07/03/2009, 20:35
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 2 meses
Puntos: 7
Respuesta: Equivalente a AVG pero para texto

Saludos

No entiendo muy bien qué es lo que quieres. Me he hecho un ejercicio:
Cita:
pruebas=# CREATE TABLE cosa (numero integer, palabra character varying(50));
CREATE TABLE
pruebas=# INSERT INTO cosa VALUES (1, 'Erase una vez en america');
INSERT 0 1
pruebas=# INSERT INTO cosa VALUES (2, 'una vez en mi casa');
INSERT 0 1
pruebas=# INSERT INTO cosa VALUES (3, 'Se una vez tu mismo');
INSERT 0 1
pruebas=# SELECT avg (numero) from cosa ;
avg
--------------------
2.0000000000000000
(1 fila)
AVG (promedio) me devuelve la suma de los valores entre el total de elementos (o registros en nuestro caso). Pero... tu pregunta

Cita:
Iniciado por nekcab Ver Mensaje
... poder obtener como resultado: "una vez".
Código:
pruebas=# INSERT INTO cosa VALUES (5, 'este tiene dos veces');
INSERT 0 1
pruebas=# SELECT * FROM cosa;
 numero |         palabra          
--------+--------------------------
      1 | Erase una vez en america
      2 | una vez en mi casa
      3 | Se una vez tu mismo
      5 | este tiene dos veces
(4 filas)
Para tu pregunta yo haría, quizás:
Código:
pruebas=# SELECT * FROM cosa WHERE palabra ILIKE '%una vez%';
 numero |         palabra          
--------+--------------------------
      1 | Erase una vez en america
      2 | una vez en mi casa
      3 | Se una vez tu mismo
(3 filas)
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 08/03/2009, 02:46
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Equivalente a AVG pero para texto

El titulo no es muy acertado, avg para texto....

No existe nada asi, pero puedes programarlo, bien a nivel de BD o con tu lenguaje de programacion favorito.

Salu2
  #4 (permalink)  
Antiguo 08/03/2009, 05:39
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Respuesta: Equivalente a AVG pero para texto

Cita:
Iniciado por seyco
"No existe nada asi...."
Lo que me temía. Ya imaginé que tendría que echar mano de la programación....
Con respecto al título, bueno, realmente se entiende, más o menos.
Cita:
Iniciado por cacr
numero | palabra
--------+--------------------------
1 | Erase una vez en america
2 | una vez en mi casa
3 | Se una vez tu mismo
La idea es que yo no conozca el resultado, sino que me sea la propia búsqueda la que me diga que cadena es común en varias tuplas de un mismo campo.
Claro que a continuación habría que preguntarse: ¿Pero no habría varios "conjuntos" de tuplas con distintas cadenas comunes (distintas entre los diferentes "conjuntos") ?. ¿Como Postgree sería capaz de gestionar eso?..... pues como bien ha dicho:
Cita:
Iniciado por seyco
"....programarlo, bien a nivel de BD o con tu lenguaje de programacion favorito.
Gracias por la aclaración, solo quería confirmar que efectivamente no existía una función semejante. Gracias de nuevo.
  #5 (permalink)  
Antiguo 09/03/2009, 10:22
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: Equivalente a AVG pero para texto

y con la sentencia Like como te indicaron arriba no te funciona?
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 16:56.