SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Agrupar SQLite por


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 BY clá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.