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.