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

Registros coincidentes

Estas en el tema de Registros coincidentes en el foro de Bases de Datos General en Foros del Web. Hola buenas a tod@s, tengo una pregunta que quizás sea una tontería pero me estoy volviendo loco. Como puedo listar los registros de una misma ...
  #1 (permalink)  
Antiguo 11/08/2011, 11:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Registros coincidentes

Hola buenas a tod@s,

tengo una pregunta que quizás sea una tontería pero me estoy volviendo loco.

Como puedo listar los registros de una misma tabla que tengan el mismo valor en uno de sus campos?

Por ejemplo:

Dani - 8
Javi - 8
Susana 3

Necesito que la consulta únicamente me muestre Dani - 8 y Javi - 8 ya que tienen el segundo campo igual.

Alguien podria ayudarme por favor!

Gracias
  #2 (permalink)  
Antiguo 11/08/2011, 11:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Registros coincidentes

Código SQL:
Ver original
  1. SELECT * FROM tabla WHERE camponumero=8
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 11/08/2011, 11:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Registros coincidentes

Exactamente no es eso lo que necesito. Esa consulta muestra solo los que tienen 8 en el campo numero, pero en la tabla que tengo existen muchos registros con otros numeros y no puedo hacer una consulta por cada uno de ellos.

Dani - 8
Javi - 8
Susana - 3
David - 3
Paco - 1

Luego cuando pueda obtener esto, como podria guardar los datos de tal manera que luego pudiera compararlos entre si. Es decir, hago la consulta para saber cuales estan repetidos y luego como guardo que uno es Dani y otro es Javi.

Gracias
  #4 (permalink)  
Antiguo 11/08/2011, 11:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Registros coincidentes

Al final he conseguido la forma de que me los muestre por pantalla, pero el problema que tengo es a la hora de comparar los datos de uno con los del otro.

Como puedo guardar por un lado la informacion de cliente 1 y los datos de cliente 2 para compararlos entre si, es decir una vez obtenido los clientes cuyo campo numero es igual dividirlos para decir si tienen el mismo numero(campo) realiza esta accion.

No se si me he explicado bien.

Gracias
  #5 (permalink)  
Antiguo 11/08/2011, 11:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Registros coincidentes

La verdad no te entiendo. Coloca el código que llevas para entender mejor.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 11/08/2011, 12:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Registros coincidentes

Mira estoy avanzando un poco. Ahora mismo me muestra ordenado como necesito los datos que tienen el mismo campo.

Tengo esta consulta:

select * from clasi where puntos in (select puntos from clasi group by puntos having count(puntos) > 1 ) order by puntos DESC;

Lo único que necesito ahora mismo es saber en base a esta consulta cuantos se repiten.

Javi -10
Carlos-10
Dani-10
Susana-3
Ruben-3

Se que tendría que utilizar count, pero no se donde colocarlo para que me funcione. Necesito que me quede asi:

Javi -10 3 (el numero de veces que se repite)
Carlos-10
Dani-10
Susana-3 2
Ruben-3

Gracias por la ayuda!
  #7 (permalink)  
Antiguo 12/08/2011, 04:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Registros coincidentes

Nadie puede ayudarme?
No se si será complicado lo que necesito, pero únicamente con contarme cuantos estan repetidos en base a la sentencia que tengo me bastaría.

Por favor, necesito vuestros conocimientos.
Muchas gracias
  #8 (permalink)  
Antiguo 12/08/2011, 05:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Registros coincidentes

Código MySQL:
Ver original
  1. SELECT C.*, COUNT(*) TotalRepeticiones
  2. FROM clasi C
  3. WHERE puntos IN(SELECT puntos FROM clasi GROUP BY puntos HAVING(puntos) > 1 )
  4. ORDER BY puntos DESC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 12/08/2011, 05:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Registros coincidentes

Muchisimas gracias de verdad. Funciona perfectamente.

Solo una cosa más, si puede ser como podría hacer la consulta para que me lo muestre asi:

David - 10 - 3
Juan - 10 - 3
Dani - 10 - 3

Es decir que me muestre todos los registros y a si vez al lado cuantas veces se repite.

De nuevo muchas gracias por la ayuda!
  #10 (permalink)  
Antiguo 12/08/2011, 07:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Registros coincidentes

revisa la funcion row_number() que es lo que necesitas para resolver tu problema

select row_number() over (partition by campo order by campo) as rn, campos from tabla
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: php, registro, registros, 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 23:06.