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

SQLite Select Distinto


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

Introdução ao SQLite SELECT DISTINCT cláusula


O DISTINCT cláusula é uma cláusula opcional do SELECT demonstração. O DISTINCT A cláusula permite que você remova as linhas duplicadas no conjunto de resultados.

A instrução a seguir ilustra a sintaxe do DISTINCT cláusula:
SELECT DISTINCT	select_list
FROM table;Code language: SQL (Structured Query Language) (sql)

Nesta sintaxe:
  • Primeiro, o DISTINCT A cláusula deve aparecer imediatamente após o SELECT palavra-chave.
  • Segundo, você coloca uma coluna ou uma lista de colunas após o DISTINCT palavra-chave. Se você usar uma coluna, o SQLite usará valores nessa coluna para avaliar a duplicata. Caso você use várias colunas, o SQLite usa a combinação de valores dessas colunas para avaliar a duplicata.

SQLite considera NULL valores como duplicatas. Se você usar o DISTINCT cláusula com uma coluna que tem NULL valores, o SQLite manterá uma linha de um NULL valor.

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

Por exemplo, se um cliente tiver um número de telefone com um NULL valor, 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 um número de telefone.

SQLite SELECT DISTINCT exemplos


Usaremos os customers tabela no banco de dados de exemplo para demonstração.

Suponha que você queira saber as cidades onde os clientes se localizam, você pode usar o SELECT instrução para obter dados da city coluna dos customers tabela da seguinte forma:
SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Tente

Ele retorna 59 linhas. Existem poucas linhas duplicadas, como Berlin London e Mountain View Para remover essas linhas duplicadas, você usa o DISTINCT cláusula da seguinte forma:
SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Tente

Ele retorna 53 linhas porque o DISTINCT cláusula removeu 6 linhas duplicadas.

SQLite SELECT DISTINCT em várias colunas


A declaração a seguir encontra cidades e países de todos os clientes.
SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Tente

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

Para remover a cidade e o país duplicados, você aplica o DISTINCT cláusula para as colunas de cidade e país, conforme mostrado na consulta a seguir:
SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Aqui está a saída parcial:

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

SQLite SELECT DISTINCT com NULL exemplo


Esta declaração retorna os nomes das empresas dos clientes dos customers tabela.
SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Tente

Ele retorna 59 linhas com muitos NULL valores.

Agora, se você aplicar o DISTINCT cláusula à instrução, ela manterá apenas uma linha com um NULL valor.

Veja a seguinte declaração:
SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Tente

A instrução retorna 11 linhas com um NULL valor.

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

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