Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/01/2012, 11:21
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: eliminar registros repetidos (no pk)

Hola robertgustavo:

Veamos si entendí correctamente el problema:

Supongamos que tu tabla tiene la siguiente información:

Código:
id          usuario    diagnostico
----------- ---------- -----------
1           uno        Bronquitis
2           uno        Presión
3           dos        Presión
4           dos        Presión
5           dos        Presión
6           tres       Bronquitis
7           dos        Bronquitis
8           dos        Presión
9           tres       Asma
10          uno        Bronquitis
Si buscamos sólo por diagnóstico, obtendríamos lo siguiente:

Código:
select diagnostico, count(diagnostico) total from @Tabla 
group by diagnostico order by 2 desc

diagnostico total
----------- -----------
Presión     5
Bronquitis  4
Asma        1
Esto indicaría que el diagnóstico PRESIÓN fue el más recurrente, sin embargo, si analizamos la información, podemos ver que el usuario DOS fue diagnosticado 4 veces con PRESIÓN:

Código:
select usuario, diagnostico, count(*) from @Tabla 
group by usuario, diagnostico
order by usuario, diagnostico

usuario    diagnostico 
---------- ----------- -----------
dos        Bronquitis  1
dos        Presión     4
tres       Asma        1
tres       Bronquitis  1
uno        Bronquitis  2
uno        Presión     1

Por lo tanto si haces la sumatoria de los diagnósticos es obvio que presión es el diagnóstico más repetido, sin embargo si no se toman los diagnósticos repetidos para cada usuario, tenemos lo siguiente:

Código:
select distinct usuario, diagnostico from @Tabla;

usuario    diagnostico
---------- -----------
dos        Bronquitis
dos        Presión
tres       Asma
tres       Bronquitis
uno        Bronquitis
uno        Presión
Ahora podemos aplicar nuevamente el conteo, utilizando esta subconsulta:

Código:
select diagnostico, count(diagnostico) total from 
(
select distinct usuario, diagnostico from @Tabla
) T
group by diagnostico
order by 2 desc;

diagnostico total
----------- -----------
Bronquitis  3
Presión     2
Asma        1
Aquí se observa que el diagnóstico más repetido es BRONQUITIS, pues aparece para los tres usuarios. PRESIÓN, aunque aparece más veces en la tabla sólo fue diagnosticado para los usuarios uno y dos, pero no para el usuario 3.

Dale un vistazo y nos comentas.

Saludos
Leo.