sql >> Databasteknik >  >> RDS >> SQLite

SQLite Välj Distinct

Sammanfattning :i denna handledning lär du dig hur du använder SQLite SELECT DISTINCT sats för att ta bort dubbletter av rader i resultatuppsättningen.

Introduktion till SQLite SELECT DISTINCT klausul

DISTINCT sats är en valfri sats i SELECT påstående. DISTINCT satsen låter dig ta bort dubblettraderna i resultatuppsättningen.

Följande sats illustrerar syntaxen för DISTINCT klausul:

SELECT DISTINCT	select_list
FROM table;Code language: SQL (Structured Query Language) (sql)

I denna syntax:

  • Först, DISTINCT satsen måste visas omedelbart efter SELECT sökord.
  • För det andra placerar du en kolumn eller en lista med kolumner efter DISTINCT nyckelord. Om du använder en kolumn använder SQLite värden i den kolumnen för att utvärdera dubbletten. Om du använder flera kolumner, använder SQLite kombinationen av värden i dessa kolumner för att utvärdera dubbletten.

SQLite anser NULL värden som dubbletter. Om du använder DISTINCT sats med en kolumn som har NULL värden kommer SQLite att behålla en rad i en NULL värde.

I databasteorin, om en kolumn innehåller NULL värden betyder det att vi inte har informationen om den kolumnen med särskilda poster eller så är informationen inte tillämplig.

Till exempel om en kund har ett telefonnummer med NULL värde, betyder det att vi inte har information om kundens telefonnummer vid tidpunkten för registrering av kundinformation eller att kunden kanske inte har något telefonnummer alls.

SQLite SELECT DISTINCT exempel

Vi kommer att använda kunderna tabell i exempeldatabasen för demonstration.

Anta att du vill veta städerna där kunderna befinner sig, kan du använda SELECT uttalande för att hämta data från city kolumnen för kunderna tabell enligt följande:

SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Prova det

Den returnerar 59 rader. Det finns få dubbletter av rader som Berlin London och Mountain View För att ta bort dessa duplicerade rader använder du DISTINCT klausul enligt följande:

SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Prova det

Den returnerar 53 rader eftersom DISTINCT klausulen har tagit bort 6 dubbletter av rader.

SQLite SELECT DISTINCT på flera kolumner

Följande uttalande hittar städer och länder för alla kunder.

SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Prova det

Resultatuppsättningen innehåller dubbletter av stad och land, t.ex. Sao Paulo i Brasilien som visas i skärmdumpen ovan.

För att ta bort dubbletter av stad och land använder du DISTINCT sats till både stad och land kolumner som visas i följande fråga:

SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Här är den partiella utmatningen:

Som nämnts tidigare använder SQLite kombinationen av stad och land för att utvärdera dubbletten.

SQLite SELECT DISTINCT med NULL exempel

Detta uttalande returnerar namnen på företag till kunder från kunderna bord.

SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Prova det

Den returnerar 59 rader med många NULL värden.

Nu, om du använder DISTINCT satsen i satsen kommer den bara att behålla en rad med en NULL värde.

Se följande uttalande:

SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Prova det

Satsen returnerar 11 rader med en NULL värde.

Observera att om du väljer en lista med kolumner från en tabell och vill få en unik kombination av vissa kolumner, kan du använda GROUP BY klausul.

I den här handledningen har du lärt dig hur du tar bort dubbletter av rader från en resultatuppsättning med SQLite SELECT DISTINCT klausul.


  1. mysqli_fetch_array() förväntar sig att parameter 1 är mysqli_result, boolean ges i

  2. När ska man stänga markörer med MySQLdb

  3. MySQL Tutorial – Förstå sekunderna bakom Master Value

  4. Proaktiva SQL Server Health Checks, Del 3:Inställningar för instans och databas