Função SQL COUNT ()

Última atualização em 26 de fevereiro de 2020 08:07:42 (UTC / GMT +8 horas)

Função COUNT ()

A função SQL COUNT () retorna o número de linhas em uma tabela que satisfaz os critérios especificado na cláusula WHERE. Ele define o número de linhas ou valores de coluna não NULL.
COUNT () retorna 0 se não houver linhas correspondentes.

Sintaxe:

COUNT(*)COUNT( expression )

A sintaxe acima é a sintaxe geral padrão ANSI do SQL 2003. Isso ajuda a entender a forma como a função SQL COUNT () é usada. Mas fornecedores de banco de dados diferentes podem ter maneiras diferentes de aplicar a função COUNT ().

A seguir, você pode ver que o MySQL, PostgreSQL e o Microsoft SQL Server seguem a mesma sintaxe fornecida acima. Mas o DB2 e o Oracle são um pouco diferentes.

No geral, você pode usar * ou ALL ou DISTINCT ou alguma expressão junto com COUNT para COUNT o número de linhas w.r.t. alguma condição ou todas as linhas, dependendo dos argumentos que você está usando junto com a função COUNT ().

Suporte DBMS: função COUNT ()

DBMS Comando
MySQL Compatível
PostgreSQL Compatível
SQL Server Compatível
Oracle Compatível

Sintaxe do DB2 e Oracle:

COUNT ({*| expression}) OVER (window_clause)

Parâmetros:

Nome Descrição
ALL Aplica-se a todos os valores. ALL retorna o número de valores não nulos.
DISTINCT Valores duplicados ignorados e COUNT retorna o número de valores não nulos exclusivos.
expressão Expressão composta de uma única constante, variável, função escalar ou nome de coluna e também pode ser as partes de uma consulta SQL que compara valores com outros valores. Expressão de qualquer tipo, exceto texto ou imagem. Funções agregadas e subconsultas não são permitidas.
* COUNTs todas as linhas na tabela de destino, incluindo ou não NULLs.

Diagrama de sintaxe – função COUNT ()

Nas páginas subsequentes, discutimos como aplicar COUNT () com várias cláusulas SQL. Para esses aplicativos, usamos o Oracle 10g Express Edition.

Uma coisa importante sobre a função COUNT ():

Quando o * é usado para COUNT (), todos os registros (linhas) são COUNTed se algum conteúdo for NULL, mas COUNT (column_name) não COUNT um registro se seu campo for NULL. Veja os exemplos a seguir:

SQL COUNT linhas em uma tabela

No exemplo a seguir, um asterisco (*) é usado seguido por SQL COUNT () que indica todas as linhas da tabela, mesmo se houver qualquer valor NULL.

Tabela de exemplo: pedidos

Para obter o número de linhas na tabela “pedidos” , a seguinte instrução SQL pode ser usada:

Código SQL:

Resultado:

 COUNT(*)--------- 34

Apresentação pictórica:

Selecione COUNT (*) de várias tabelas

A seguinte consulta COUNT o número de linhas de duas tabelas diferentes (aqui usamos funcionários e departamentos) usando o comando COUNT (*).

Código SQL:

Saída:

TOTAL_EMPLOYEES NO_OF_DEPARTMENTS--------------- ----------------- 107 27

SQL COUNT () com nome de coluna

Neste exemplo, a função SQL COUNT () exclui os valores NULL para uma coluna específica se especificada a coluna como um argumento entre parênteses de COUNT func ção.

Tabela de amostra: listofitem

Para obter o número de linhas na tabela “listofitem” com a seguinte condição –

1. COUNT número de linhas para a coluna “coname”

a seguinte instrução SQL pode ser usada:

Código SQL:

Resultado:

COUNT(CONAME)------------- 2

Explique:

A instrução acima COUNT essas linhas para a coluna “coname” que não são NULL .

SQL COUNT linhas com cabeçalho de coluna definido pelo usuário

Para obter o número de linhas na tabela “pedidos” com a seguinte condição –

1. o resultado deve ser exibido com um título “Número de linhas”,

a seguinte instrução SQL pode ser usada:

Código SQL:

Saída:

Number of Rows-------------- 36

SQL COUNT () com cláusula where

A cláusula WHERE pode ser usada junto com Função SQL COUNT () para selecionar registros específicos de uma tabela em relação a uma determinada condição.

Exemplo:

Tabela de amostra: pedidos

Para obter o número de linhas na tabela “pedidos” com a seguinte condição –

1.ord_amount em relação ao pedido é superior a 1500,

a seguinte instrução SQL pode ser usada:

Resultado:

Number of Rows-------------- 22

Aplicação da função COUNT ()

Nas páginas subsequentes, discutimos como aplicar COUNT () com várias cláusulas SQL. Para esses aplicativos, usamos o Oracle 10g Express Edition.

A página COUNT com DISTINCT discute como aplicar a função COUNT com DISTINCT e também discute como aplicar a função COUNT com a cláusula ALL. Ao contrário do uso de *, quando ALL é usado, os valores NULL não são selecionados.

A página COUNT HAVING discute como aplicar a função COUNT com a cláusula HAVING e HAVING e GROUP BY.

COUNT com GROUP A página BY discute como aplicar a função COUNT com GRUPO BY em ordem crescente e em ordem decrescente.

Nota: As saídas da referida instrução SQL mostrada aqui são obtidas usando o Oracle Database 10g Express Edition

Aqui está uma apresentação de slides de todas as funções de agregação.

Exercícios de SQL prática

  • Exercícios de SQL, prática, solução
  • SQL Recuperar dados de tabelas
  • SQL Booleanos e operadores relacionais
  • SQL Wildcard e operadores especiais
  • SQL Aggregate Functions
  • SQL Formatting query output
  • SQL Quering em várias tabelas
  • FILTRAGEM e CLASSIFICAÇÃO no banco de dados de RH
  • SQL JOINS
    • SQL JOINS
    • SQL JOINS em Banco de dados de RH
  • SUBQUERIES SQL
    • SUBQUERIES SQL
    • SQL SU BQUERIES no banco de dados de RH
  • SQL Union
  • SQL View
  • SQL User Account Management
  • Movie Database
    • Consultas BÁSICAS no banco de dados de filmes
    • SUBQUERIES no banco de dados de filmes
    • JOINS no banco de dados de filmes
  • Banco de dados de futebol
    • Introdução
    • Consultas BÁSICAS no banco de dados de futebol
    • SUBQUERIES no banco de dados de futebol
    • Consultas de JOINS no banco de dados de futebol
  • Banco de dados de hospitais
    • Introdução
    • BÁSICO, SUBQUERIES e JOINS
  • Banco de dados de funcionários
    • Consultas BÁSICAS no banco de dados de funcionários
    • SUBQUERIES no banco de dados de funcionários
  • Mais por vir!

Leave a Reply

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *