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

ordenacion de tabla mysql

Estas en el tema de ordenacion de tabla mysql en el foro de Mysql en Foros del Web. Hola, buenos dias, Tengo una base de datos en la que en una tabla tengo clientes y tengo la tabla de clientes, pero quiero saber ...
  #1 (permalink)  
Antiguo 05/11/2010, 17:34
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
ordenacion de tabla mysql

Hola, buenos dias,
Tengo una base de datos en la que en una tabla tengo clientes y tengo la tabla de clientes, pero quiero saber cuantos clientes reales tengo en mi tabla.

Explico, hay clientes con el mismo nombre registrados con distinto correo, como puedo yo hacer ese filtro que me filtre todos los que tenga repetidos?

me pueden ayudar?

una columna es para el nombre y otra para el apellido. como puedo realizar el filtro?

Pongo un ejemplo, yo quiero que me saque todo lo que coincida en nombre y apellidos.

es decir yo tengo

nombre apellidos
--------- -----------

marta jimenez
alberto martinez
MARTA JIMENEZ
julian marcos
ALBERTO MARTINEZ

en este caso hay dos registros que serían iguales...y tendria en realidad 3 clientes no 5 como figura en mi tabla

entienden mi criterio?

Espero me ayuden. Gracias.
  #2 (permalink)  
Antiguo 08/11/2010, 02:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ordenacion de tabla mysql

Código MySQL:
Ver original
  1. SELECT UPPER(nombre) as N, UPPER(apellidos) as A, count(*) as Repeticiones
  2. FROM Clientes
  3. GRUP BY UPPER(nombre), UPPER(apellidos);

Esto te da la lista con indicación del numero de repeticiones.

Para saber el numero total

Código MySQL:
Ver original
  1. SELECT count(*) as NClientes
  2. FROM (SELECT UPPER(nombre) as N,
  3.                         UPPER(apellidos) as A,
  4.                         count(*) as Repeticiones
  5.             FROM Clientes
  6.             GRUP BY UPPER(nombre),
  7.                            UPPER(apellidos)) as Sbc;

Quim
  #3 (permalink)  
Antiguo 08/11/2010, 03:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 533
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: ordenacion de tabla mysql

SELECT UPPER(nombre) as N, UPPER(apellidos) as A, count(*) as Repeticiones
FROM Clientes
GRUP BY UPPER(nombre), UPPER(apellidos);


Me gustaria que me explicaran la N , la A, yo nombre y apellidos lo tengo dentro de la tabla CLIENTES,

y no se habrá equivocado y en lugar de GRUP, puede ser GRUP?

y no se si será pedir mucho, pero me gustaria saber el sentido de la sentencia, hay cosas que no entiendo muy bien.


Gracias.
  #4 (permalink)  
Antiguo 08/11/2010, 04:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ordenacion de tabla mysql

Cita:
y no se habrá equivocado y en lugar de GRUP, puede ser GRUP?
Si me he equivocado es GROUP.

La N y la A pues son alias de UPPER(nombre) y UPPER(apellidos) respectivamente, como Repeticiones lo es de count(*). Le das un nombre a el campo calculado.


UPPER() pasa los campos a mayúculas para igualarlos.

Explicació de la sentencia, agrupa los registros siempre que UPPER(nombre), UPPER(apellidos) sean iguales, nos da una info adicional del numero de registros repetidos que tenemos en cada caso.

La segunda sentencia lo que hace es contar el numero de registros de la primera.

Quim

Etiquetas: ordenacion, tablas
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:29.