Resumo :neste tutorial, você aprenderá como usar SQLite
GROUP BY cláusula para fazer um conjunto de linhas de resumo de um conjunto de linhas. Introdução ao SQLite GROUP BY cláusula
O
GROUP BY cláusula é uma cláusula opcional do SELECT demonstração. O GROUP BY cláusula um grupo selecionado de linhas em linhas de resumo por valores de uma ou mais colunas. O
GROUP BY cláusula retorna uma linha para cada grupo. Para cada grupo, você pode aplicar uma função agregada como MIN , MAX , SUM , COUNT , ou AVG para fornecer mais informações sobre cada grupo. A instrução a seguir ilustra a sintaxe do SQLite
GROUP BY cláusula. SELECT
column_1,
aggregate_function(column_2)
FROM
table
GROUP BY
column_1,
column_2;
Code language: SQL (Structured Query Language) (sql) Tente
O
GROUP BY cláusula vem depois do FROM cláusula do SELECT demonstração. Caso uma instrução contenha um WHERE cláusula, o GROUP BY A cláusula deve vir após o WHERE cláusula. Seguindo o
GROUP BY cláusula é uma coluna ou uma lista de colunas separadas por vírgulas usadas para especificar o grupo. SQLite GROUP BY exemplos
Usamos as
tracks tabela do banco de dados de exemplo para a demonstração.
SQLite GROUP BY cláusula com COUNT função
A instrução a seguir retorna o ID do álbum e o número de faixas por álbum. Ele usa o
GROUP BY cláusula para agrupar faixas por álbum e aplica o COUNT() função para cada grupo. SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Tente
Você pode usar o
ORDER BY cláusula para classificar os grupos da seguinte forma:SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
ORDER BY COUNT(trackid) DESC;Code language: SQL (Structured Query Language) (sql) Tente
SQLite GROUP BY e INNER JOIN cláusula
Você pode consultar dados de várias tabelas usando o
INNER JOIN cláusula, então use o GROUP BY cláusula para agrupar linhas em um conjunto de linhas de resumo. Por exemplo, a instrução a seguir une as
tracks tabela com os albums tabela para obter os títulos do álbum e usa o GROUP BY cláusula com o COUNT função para obter o número de faixas por álbum. 
SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Tente
SQLite GROUP BY com HAVING cláusula
Para filtrar grupos, você usa o
GROUP BY com HAVING cláusula. Por exemplo, para obter os álbuns com mais de 15 faixas, use a seguinte instrução:SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING COUNT(trackid) > 15;Code language: SQL (Structured Query Language) (sql) Tente
SQLite GROUP BY cláusula com SUM exemplo de função
Você pode usar o
SUM função para calcular o total por grupo. Por exemplo, para obter o comprimento total e os bytes de cada álbum, você usa o SUM função para calcular o total de milissegundos e bytes. SELECT
albumid,
SUM(milliseconds) length,
SUM(bytes) size
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Tente
SQLite GROUP BY com MAX , MIN e AVG funções
A instrução a seguir retorna o ID do álbum, o título do álbum, a duração máxima, a duração mínima e a duração média das faixas nas
tracks tabela. SELECT
tracks.albumid,
title,
min(milliseconds),
max(milliseconds),
round(avg(milliseconds),2)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Tente
SQLite GROUP BY exemplo de várias colunas
No exemplo anterior, usamos uma coluna no
GROUP BY cláusula. O SQLite permite agrupar linhas por várias colunas. Por exemplo, para agrupar faixas por tipo e gênero de mídia, use a seguinte instrução:
SELECT
MediaTypeId,
GenreId,
COUNT(TrackId)
FROM
tracks
GROUP BY
MediaTypeId,
GenreId;Code language: SQL (Structured Query Language) (sql) Tente
SQLite usa a combinação de valores de
MediaTypeId e GenreId colunas como um grupo, por exemplo, (1,1) e (1,2). Em seguida, aplica o COUNT função para retornar o número de faixas em cada grupo. SQLite GROUP BY exemplo de data
Consulte a seguinte tabela de faturas do banco de dados de exemplo:
A declaração a seguir retorna o número de faturas por anos.
SELECT
STRFTIME('%Y', InvoiceDate) InvoiceYear,
COUNT(InvoiceId) InvoiceCount
FROM
invoices
GROUP BY
STRFTIME('%Y', InvoiceDate)
ORDER BY
InvoiceYear;Code language: SQL (Structured Query Language) (sql) Aqui está a saída:
Neste exemplo:
- A função
STRFTIME('%Y', InvoiceDate)retorna um ano de uma string de data. - O
GROUP BYcláusula agrupa as faturas por anos. - A função
COUNT()retorna o número da fatura em cada ano (ou grupo).
Neste tutorial, você aprendeu como usar o SQLite
GROUP BY cláusula para agrupar linhas em um conjunto de linhas de resumo.