Access - Conteo de campos sin contar Repetidos

 
Vista:
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Jonathan (11 intervenciones) el 12/07/2016 23:55:36
Buenas tardes a toda la comunidad,

Me podrían dar una mano con este tema?

Escenario:

Tengo una consulta el cual me trae los usuarios y cuantos riesgos tiene. El punto esta en que la consulta me esta contando todos los riesgos aun repetidos.

SQL Actual:

SELECT tbl_resultado_usuarios.usuario, Count(tbl_resultado_usuarios.riesgo) AS CuentaDeriesgo
FROM tbl_resultado_usuarios
GROUP BY tbl_resultado_usuarios.usuario
ORDER BY Count(tbl_resultado_usuarios.riesgo);

He tratado de hacerlo con el DISTINCT pero no he podido hacer que funcione.

Jonathan Orozco
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Enrique Heliodoro (1664 intervenciones) el 13/07/2016 00:14:29
Entiendo que se desea que agrupe el mismo tipo de riesgo para el mismo usuario, si se desea conocer cuatos tipos de riesgos (y dentro de cada tipo el numero de repeticiones) bastaria agrupar tambien por riesgo.

Si lo que se desea es conocer cuantos tipos de riesgo tiene el mismo usuario, quizas seria adecuado el generar una consulta de agrupacion previa (para que los acumulase) y utilizarla como el origen para la actual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Jonathan (11 intervenciones) el 13/07/2016 01:58:55
Muchas gracias Enrique.

Voy a poner el ejemplo de lo que pretendo y creo que lo mencionas arriba.

Ejemplo:

Usuario---------Riesgo

Pepito-----------A001
Pepito-----------A001
Pepito-----------A001
Pepito-----------B002
Pepito-----------B002

El conteo deberá mostrar ( 2 ) y no ( 5 )

Espero haber sido mas claro.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Enrique Heliodoro (1664 intervenciones) el 13/07/2016 08:41:41
Aplica la segunda opción, la primera consulta agruparía por el binomio usuario + riesgo y devolvería:

Pepito-----------A001
Pepito-----------B002

Como no se utiliza ningún conteo también se podría aplicar DISTINCT, la cuestión consiste en agrupar elementos únicos y ya obtenidos estos una nueve consulta con este origen (que ahora solo agruparía por usuario) daría el resultado deseado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Jonathan (11 intervenciones) el 15/07/2016 17:58:31
Disculpas por conectarme tarde.

Tu me podrías explicar como hacerlo? Estoy medio enredado con la consulta :(

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conteo de campos sin contar Repetidos

Publicado por Enrique Heliodoro (1664 intervenciones) el 15/07/2016 20:08:03
Partimos de una tabla con estos datos (la tabla se llama DATOS):

Usuario Riesgo
Pepito ...... A001
Pepito ...... A001
Pepito ...... A001
Pepito ...... B002
Pepito ...... B002
Juan ...... A001
Juan ...... A001
Luis ...... A001
Juan ...... B002
Juan ...... B002
Antonio ...... B002
Pepito ...... A002


Primera consulta (la llamare FASE_1):
Su vista SQL

SELECT Datos.Usuario, Datos.Riesgo
FROM Datos
GROUP BY Datos.Usuario, Datos.Riesgo;

resultado obtenido:
Usuario Riesgo
Antonio ..... B002
Juan ...... A001
Juan ...... B002
Luis ...... A001
Pepito ..... A001
Pepito ..... A002
Pepito ..... B002


Una nueva consulta (basada en la anterior, la llamare FASE_2):
Su vista SQL

SELECT Fase_1.Usuario, Count(Fase_1.Riesgo) AS CuentaDeRiesgo
FROM Fase_1
GROUP BY Fase_1.Usuario;

Resultado obtenido
Usuario CuentaDeRiesgo
Antonio ......1
Juan ......... 2
Luis ...........1
Pepito ...... 3


Vamos a mejorarla (todo en una consulta)
La tabla es la misma, la nueva SQL es esta:

SELECT Z.Usuario, Count(Z.Riesgo) AS Riesgos
FROM (SELECT Usuario, Riesgo FROM Datos GROUP BY Usuario, Riesgo) AS Z
GROUP BY Z.Usuario;

Su resultado
Usuario Riesgos
Antonio ..... 1
Juan ...... 2
Luis ...... 1
Pepito ...... 3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar