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?
Respuestas:
Puede usar la
DISTINCT
palabra clave dentro de laCOUNT
función agregada:Esto contará solo los valores distintos para esa columna.
fuente
select A,COUNT(DISTINCT B) from table group by A
Esto le dará AMBOS valores de columna distintos y el recuento de cada valor. Generalmente encuentro que quiero saber ambas piezas de información.
fuente
columnName
, ya está obteniendo los valores distintos solo una vez y ladistinct
palabra clave no hace nada aquí. Pruebe la consulta sin ella, el conjunto de resultados es exactamente el mismo.Tenga en cuenta que Count () ignora los valores nulos, por lo que si necesita permitir null como su propio valor distintivo, puede hacer algo complicado como:
fuente
case when my_col is null then 1 else my_col end
SELECT my_col, COUNT(my_col) + COUNT(CASE WHEN my_col IS NULL THEN 1 ELSE NULL END) as CountOf from my_Table GROUP BY my_col
count(*)
es específicamente un recuento de filas.Una suma de sql de los valores únicos de column_name y ordenados por la frecuencia:
fuente
Esto dará cuenta del grupo distinto de columnas.
fuente
tienes que contar esa columna distinta, luego darle un alias.
fuente
fuente
** **
** **
fuente
Puede usar esta consulta para contar datos diferentes / distintos. Gracias
fuente
Después de MS SQL Server 2012, también puede usar la función de ventana.
fuente
El recuento (distinto ({fieldname})) es redundante
Simplemente contar ({fieldname}) le ofrece todos los valores distintos en esa tabla. No (como muchos suponen) solo le dará el Conteo de la tabla [es decir, NO es lo mismo que el Conteo (*) de la tabla]
fuente
count(field)
devuelve el número de líneas dondefield
estánot null
.