SQLite Selecione Distinto

Resumo : neste tutorial, você aprenderá como usar a SELECT DISTINCTcláusula SQLite para remover linhas duplicadas no conjunto de resultados.

SELECT DISTINCTIntrodução à cláusula SQLite 

A DISTINCTcláusula é uma cláusula opcional da  SELECTdeclaração. A DISTINCTcláusula permite remover as linhas duplicadas no conjunto de resultados.

A seguinte declaração ilustra a sintaxe da DISTINCTcláusula:

SELECT DISTINCT	select_list
FROM table;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, a DISTINCTcláusula deve aparecer imediatamente após a SELECTpalavra-chave.
  • Segundo, você coloca uma coluna ou lista de colunas após a DISTINCTpalavra-chave. Se você usar uma coluna, o SQLite usará os valores dessa coluna para avaliar a duplicata. Caso você use múltiplas colunas, o SQLite usa a combinação de valores nessas colunas para avaliar a duplicata.

SQLite considera NULLvalores como duplicados. Se você usar a DISTINCTcláusula com uma coluna que possui NULLvalores, o SQLite manterá uma linha de um NULLvalor.

Na teoria do banco de dados, se uma coluna contém NULLvalores, significa que não temos as informações sobre essa coluna de registros específicos ou que as informações não são aplicáveis.

Por exemplo, se um cliente tiver um número de telefone com um NULLvalor, isso significa que não temos informações sobre o número de telefone do cliente no momento do registro das informações do cliente ou o cliente pode não ter nenhum número de telefone.

SELECT DISTINCTExemplos de SQLite

Usaremos a customerstabela do banco de dados de exemplo para demonstração.

clientes

Suponha que você queira saber as cidades onde os clientes estão localizados, você pode usar o SELECTextrato para obter os dados da citycoluna da customerstabela da seguinte forma:

SELECT city
FROM customers
ORDER BY city;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite sem DISTINCT

Ele retorna 59 linhas. Existem poucas linhas duplicadas, como Berlin London, e Mountain Viewpara remover essas linhas duplicadas, você usa a DISTINCTcláusula a seguir:

SELECT DISTINCT city
FROM customers
ORDER BY city;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo SQLite DISTINCT

Retorna 53 linhas porque a DISTINCTcláusula removeu 6 linhas duplicadas.

SQLite SELECT DISTINCTem múltiplas colunas

A declaração a seguir encontra cidades e países de todos os clientes.

SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite DISTINCT múltiplas colunas

O conjunto de resultados contém cidade e país duplicados, por exemplo, São Paulo no Brasil, conforme mostrado na imagem acima.

Para remover cidade e país duplicados, aplique a DISTINCTcláusula às colunas de cidade e país, conforme mostrado na consulta a seguir:

SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída parcial:

SQLite SELECT DISTINCT múltiplas colunas

Conforme mencionado anteriormente, o SQLite usa a combinação de cidade e país para avaliar a duplicata.

SQLite SELECT DISTINCTcom NULLexemplo

Esta instrução retorna os nomes das empresas dos clientes da customerstabela.

SELECT company
FROM customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Ele retorna 59 linhas com muitos NULLvalores.

Agora, se você aplicar a DISTINCTcláusula à instrução, ela manterá apenas uma linha com NULLvalor.

Veja a seguinte declaração:

SELECT DISTINCT company
FROM customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite SELECT com valores DISTINCT NULL

A instrução retorna 11 linhas com um NULLvalor.

Observe que se você selecionar uma lista de colunas de uma tabela e quiser obter uma combinação exclusiva de algumas colunas, poderá usar a GROUP BYcláusula.

Neste tutorial, você aprendeu como remover linhas duplicadas de um conjunto de resultados usando a SELECT DISTINCTcláusula SQLite.

Deixe um comentário

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