SQL para encontrar el número de valores distintos en una columna
Pregunta
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?
Solución
Puede usar la palabra clave DISTINCT
dentro de COUNT
función agregada:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
Esto contará solo los valores distintos para esa columna.
Otros consejos
Esto le dará AMBOS valores de columna distintos y el recuento de cada valor. Por lo general, encuentro que quiero saber ambas informaciones.
select distinct columnName, count(columnName) as CountOf from tableName group by columnName
Tenga en cuenta que Count () ignora los valores nulos, por lo que si necesita permitir el valor nulo como un valor distinto, 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
/
select count(*) from
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T
Esto dará cuenta de grupo de columnas distintas.
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
tienes que contar esa columna distinta, luego darle un alias.
Una suma sql de los valores únicos de column_name y ordenada por la frecuencia:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
select Count(distinct columnName) as columnNameCount from tableName
**
Usando el siguiente SQL podemos obtener el recuento de valores de columnas distintas en Oracle 11g.
**
Select count(distinct(Column_Name)) from TableName
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true
Puede usar esta consulta para contar datos diferentes / distintos. Gracias
El recuento (distinto ({nombre de campo})) es redundante
Simply Count ({fieldname}) le da todos los valores distintos en esa tabla. No le dará (como muchos suponen) el recuento de la tabla [es decir, NO es lo mismo que Count (*) de la tabla]