2016-01-02

Cómo contar los elementos únicos de un campo en una consulta de Access

Title

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

4 comentarios:

  1. Saludos,

    Probe 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!

    ResponderEliminar
    Respuestas
    1. 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.

      Eliminar
  2. Un 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
    Después se cree otro campo como Conteo: [Val_A]+[Val_B]++ etc, que suma todos los campos que interesen contar

    ResponderEliminar
  3. 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

Nube de datos