Funções agregadas SQLite

Resumo : neste tutorial, você aprenderá sobre as funções agregadas do SQLite para encontrar o máximo, mínimo, média, soma e contagem de um conjunto de valores.

Visão geral das funções agregadas do SQLite

As funções agregadas operam em um conjunto de linhas e retornam um único resultado. Funções agregadas são frequentemente usadas em conjunto com cláusulas GROUP BYe HAVINGna SELECTinstrução.

SQLite fornece as seguintes funções agregadas:

  • AVG()– retorna o valor médio de um grupo.
  • COUNT()– retorna o número de linhas que correspondem a uma condição especificada
  • MAX()– retorna o valor máximo em um grupo.
  • MIN()– retorna o valor mínimo em um grupo
  • SUM()– retorna a soma dos valores
  • GROUP_CONCAT(expression, separator)– retorna uma string que é a concatenação de todos os valores não NULL da entrada expressionseparados por separator.

Sintaxe da função agregada SQLite

O seguinte mostra a sintaxe de chamada de uma função agregada, exceto a GROUP_CONCAT()função:

aggregate_function (DISTINCT | ALL expression)
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, especifique o nome da função agregada, como AVG, SUMou COUNT.
  • Segundo, especifique a expressão à qual a função agregada se aplica.

DISTINCTinstrui a função agregada a considerar apenas valores únicos no cálculo, enquanto ALLpermite que a função agregada receba todos os valores, incluindo duplicatas, em seu cálculo.

A imagem a seguir ilustra a SUM()função agregada:

Funções agregadas SQLite

Exemplos de funções agregadas SQLite

Usaremos a trackstabela do banco de dados de exemplo para a demonstração:

AVG()Exemplo de função SQLite

A seguinte declaração encontra a duração média de todas as faixas de cada álbum:

SELECT
    AlbumId,
    ROUND(AVG(Milliseconds) / 60000 ,0) "Average In Minutes"
FROM
    Tracks
GROUP BY
    AlbumId;     
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída:

Funções agregadas SQLite - exemplo AVG

Neste exemplo:

  • Primeiro, a GROUP BYcláusula divide as faixas por ID do álbum em grupos.
  • Em seguida, a AVG()função se aplica a cada grupo que possui o mesmo ID de álbum para calcular a duração média das faixas.

COUNT()Exemplo de função SQLite

A instrução a seguir retorna o número de linhas da trackstabela:

SELECT
    COUNT(*)
FROM
    tracks;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo COUNT

Para encontrar os álbuns e a contagem de faixas correspondente, use a seguinte instrução:

SELECT
    AlbumId,
    COUNT(TrackId) track_count
FROM
    tracks
GROUP BY
    AlbumId
ORDER BY
    track_count DESC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - COUNT exemplo 2

SUM()Exemplo de função SQLite

O exemplo a seguir usa a SUM()função para calcular a duração de cada álbum em minutos:

SELECT
    AlbumId, 
    SUM(Milliseconds) / 60000 Minutes
FROM
    tracks
GROUP BY
    AlbumId;   
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo SUM

MAX()Exemplo de função SQLite

Para encontrar o tempo mais longo de todas as faixas, você usa a MAX()função da seguinte forma:

SELECT
    MAX(Milliseconds) / 60000 Minutes
FROM
    tracks;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo MAX

Para encontrar as faixas cujo comprimento é maior, você usa a subconsulta :

SELECT
    TrackId,
    Name,
    Milliseconds
FROM
    tracks
WHERE 
    Milliseconds =   (
        SELECT
            MAX(Milliseconds)
        FROM
            tracks);
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo MAX 2

Neste exemplo, a consulta externa retorna a trilha cujo comprimento é igual ao tempo mais longo de todas as trilhas retornadas pela subconsulta.

MIN()Exemplo de função SQLite

Da mesma forma, a instrução a seguir encontra a trilha cujo comprimento é mais curto usando a MIN()função:

SELECT
    TrackId,
    Name,
    Milliseconds
FROM
    tracks
WHERE 
    Milliseconds = (
        SELECT
            MIN(Milliseconds)
        FROM
            tracks);
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo MIN

GROUP_CONCAT()Exemplo de função SQLite

A instrução a seguir usa a GROUP_CONCAT()função para retornar uma lista separada por vírgulas do nome da faixa do ID do álbum 10:

SELECT
    GROUP_CONCAT(name)
FROM
    tracks
WHERE   
    AlbumId = 10; 
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Funções agregadas SQLite - exemplo GROUP_CONCAT

Neste tutorial, você aprendeu sobre as funções agregadas do SQLite e como aplicá-las para calcular agregações.

Deixe um comentário

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