Problema
Deseamos contar el número de elementos únicos de un campo en Access. Por ejemplo el número de colores únicos de la siguiente tabla.
Solución
En otras aplicaciones de bases de datos como Oracle, MySQL o SQL Server, podríamos emplear DISTINCT dentro de la función de agregado COUNT.
SELECT COUNT(DISTINCT Color) AS N FROM tabla1
Desafortunadamente, Access no permite utilizar COUNT(DISTINCT [Campo]). Por tanto emplearemos la siguiente consulta. Primero creamos una subconsulta donde seleccionamos los elemento únicos y después contamos los elementos de la misma.
SELECT COUNT(*) AS N FROM (SELECT DISTINCT Color FROM Tabla1)
Otra alternativa, sería la siguiente. Sin embargo, no evitamos crear una subconsulta, es menos concisa y empleamos una agrupación sin ninguna función de agregado.<`>
SELECT COUNT(*) AS N FROM (SELECT Color FROM Tabla1 GROUP BY Color)
Entradas relacionadas
Referencias
Saludos,
ResponderEliminarProbe tu metodo y funciona sin problemas.
Me gustaria saber si se le puede agregar un Criterio WHERE de un segundo campo. He intentado agregarlo a tus dos metodos y no me resulta.
Muchas gracias de antemano!
Tu pregunta es interesante, pero ahora no dispongo de tiempo. Tal vez le dedique una entrada en el futuro. Mientras tanto, te recomiendo que la plantees en un foro, con más detalles y a ser posible incluyendo código. Saludos.
EliminarUn aporte, use la función aplicada a un campo nuevo ej Val_A: SiInm ([CAMPO_OBJETO];1;0) que en cada caso entrega un valor 1 si el campo tiene datos o es no null y = si no los tiene
ResponderEliminarDespués se cree otro campo como Conteo: [Val_A]+[Val_B]++ etc, que suma todos los campos que interesen contar
buenos dias, esxite alguna manera de usar un DISTINCT con una particion en SQL SERVER de la siguiente forma COUNT(DISTINCT TIPO) OVER(PARTITION BY GRUPO) Tipos, mi intención es saber cuantos tipos tengo sin tomar en cuanta los repetidos
ResponderEliminar