Posso selecionar todos os valores distintos em uma coluna das seguintes maneiras:
SELECT DISTINCT column_name FROM table_name;
SELECT column_name FROM table_name GROUP BY column_name;
Mas como obtenho a contagem de linhas dessa consulta? É necessária uma subconsulta?
Respostas:
Você pode usar a
DISTINCT
palavra - chave naCOUNT
função agregada:Isso contará apenas os valores distintos para essa coluna.
fonte
select A,COUNT(DISTINCT B) from table group by A
Isso fornecerá AMBOS os valores distintos da coluna e a contagem de cada valor. Normalmente, acho que quero conhecer as duas informações.
fonte
columnName
, você já está recebendo os valores distintos apenas uma vez e adistinct
palavra - chave não faz nada aqui. Experimente a consulta sem ela, o conjunto de resultados é exatamente o mesmo.Esteja ciente de que Count () ignora valores nulos; portanto, se você precisar permitir nulo como seu próprio valor distinto, poderá fazer algo complicado como:
fonte
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(*)
é especificamente uma contagem de linhas.Uma soma sql dos valores exclusivos de column_name e classificados pela frequência:
fonte
Isso dará a contagem de grupos distintos de colunas.
fonte
você precisa contar essa coluna distinta e atribuir um apelido.
fonte
fonte
**
**
fonte
Você pode usar esta consulta para contar dados diferentes / distintos. obrigado
fonte
Após o MS SQL Server 2012, você também pode usar a função de janela.
fonte
A contagem (distinta ({nome do campo})) é redundante
Basta Contar ({nome do campo}) fornece todos os valores distintos nessa tabela. Isso (como muitos presumem) não fornece apenas o número da tabela [ie NÃO é o mesmo que o número (*) da tabela]
fonte
count(field)
retorna o número de linhas ondefield
estánot null
.