SQL para encontrar el número de valores distintos en una columna
Puedo seleccionar todos los valores distintos en una columna de las siguientes maneras:
SELECT DISTINCT column_name FROM table_name;
SELECT column_name FROM table_name GROUP BY column_name;
¿Pero cómo obtengo el recuento de filas de esa consulta? ¿Se requiere una subconsulta?
Aceptado
Puede utilizar la DISTINCT
palabra clave dentro de la COUNT
función agregada:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
Esto contará solo los valores distintos para esa columna.
Esto le dará AMBOS valores de columna distintos y el recuento de cada valor. Normalmente encuentro que quiero conocer ambas piezas de información.
SELECT [columnName], count([columnName]) AS CountOf
FROM [tableName]
GROUP BY [columnName]
Una suma SQL de los valores únicos de column_name y ordenados por frecuencia:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
Tenga en cuenta que Count() ignora los valores nulos, por lo que si necesita permitir el valor nulo como su propio valor distintivo, puede hacer algo complicado como:
select count(distinct my_col)
+ count(distinct Case when my_col is null then 1 else null end)
from my_table
/