sql >> Databáze >  >> RDS >> SQLite

SQLite Select Distinct

Shrnutí :v tomto tutoriálu se naučíte používat SQLite SELECT DISTINCT klauzule k odstranění duplicitních řádků v sadě výsledků.

Úvod do SQLite SELECT DISTINCT klauzule

DISTINCT klauzule je volitelná klauzule SELECT prohlášení. DISTINCT klauzule umožňuje odstranit duplicitní řádky v sadě výsledků.

Následující příkaz ilustruje syntaxi DISTINCT klauzule:

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

V této syntaxi:

  • Za prvé, DISTINCT klauzule se musí objevit bezprostředně za SELECT klíčové slovo.
  • Za druhé umístíte sloupec nebo seznam sloupců za DISTINCT klíčové slovo. Pokud použijete jeden sloupec, SQLite použije hodnoty v tomto sloupci k vyhodnocení duplikátu. V případě, že používáte více sloupců, SQLite použije kombinaci hodnot v těchto sloupcích k vyhodnocení duplikátu.

SQLite považuje NULL hodnoty jako duplikáty. Pokud použijete DISTINCT klauzule se sloupcem, který má NULL SQLite zachová jeden řádek NULL hodnotu.

V teorii databáze, pokud sloupec obsahuje NULL hodnoty, znamená to, že nemáme informace o tomto sloupci konkrétních záznamů nebo informace nejsou použitelné.

Pokud má například zákazník telefonní číslo s NULL hodnota, znamená to, že nemáme informace o telefonním čísle zákazníka v době zaznamenávání informací o zákazníkovi nebo zákazník nemusí mít telefonní číslo vůbec.

SQLite SELECT DISTINCT příklady

Použijeme customers tabulka ve vzorové databázi pro demonstraci.

Předpokládejme, že chcete znát města, kde se zákazníci nacházejí, můžete použít SELECT k získání dat z city ve sloupci customers tabulka takto:

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

Zkuste to

Vrátí 59 řádků. Existuje několik duplicitních řádků, jako je Berlin London a Mountain View Chcete-li odstranit tyto duplicitní řádky, použijte DISTINCT doložka takto:

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

Zkuste to

Vrátí 53 řádků, protože DISTINCT klauzule odstranila 6 duplicitních řádků.

SQLite SELECT DISTINCT na více sloupcích

Následující výpis najde města a země všech zákazníků.

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

Zkuste to

Sada výsledků obsahuje duplicitní město a zemi, např. Sao Paulo v Brazílii, jak je znázorněno na snímku obrazovky výše.

Chcete-li odstranit duplicitní město a zemi, použijte DISTINCT klauzule do sloupců města i země, jak je znázorněno v následujícím dotazu:

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

Zde je částečný výstup:

Jak již bylo zmíněno dříve, SQLite používá k vyhodnocení duplikátu kombinaci města a země.

SQLite SELECT DISTINCT s NULL příklad

Tento příkaz vrací jména společností zákazníků z customers tabulka.

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

Zkuste to

Vrátí 59 řádků s mnoha NULL hodnoty.

Nyní, pokud použijete DISTINCT klauzule k příkazu, zachová pouze jeden řádek s NULL hodnotu.

Viz následující prohlášení:

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

Zkuste to

Příkaz vrátí 11 řádků s jedním NULL hodnotu.

Všimněte si, že pokud vyberete seznam sloupců z tabulky a chcete získat jedinečnou kombinaci některých sloupců, můžete použít GROUP BY doložka.

V tomto tutoriálu jste se naučili, jak odstranit duplicitní řádky ze sady výsledků pomocí SQLite SELECT DISTINCT doložka.


  1. Jeden způsob, jak získat hledání indexu pro vedoucí % zástupný znak

  2. Výkon MySQL:Jak využít indexování databáze MySQL

  3. Jedinečné omezení, které umožňuje prázdné hodnoty v MySQL

  4. Vyrovnávání zatížení databáze:Distribuované vs centralizované nastavení