Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite SELECT DISTINCT
klauzula, aby usunąć zduplikowane wiersze w zestawie wyników.
Wprowadzenie do SQLite SELECT DISTINCT
klauzula
DISTINCT
klauzula jest opcjonalną klauzulą SELECT
oświadczenie. DISTINCT
klauzula umożliwia usunięcie zduplikowanych wierszy w zestawie wyników.
Poniższa instrukcja ilustruje składnię DISTINCT
klauzula:
SELECT DISTINCT select_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
W tej składni:
- Po pierwsze,
DISTINCT
klauzula musi pojawić się bezpośrednio poSELECT
słowo kluczowe. - Po drugie, umieszczasz kolumnę lub listę kolumn po
DISTINCT
słowo kluczowe. Jeśli używasz jednej kolumny, SQLite używa wartości z tej kolumny do oceny duplikatu. Jeśli używasz wielu kolumn, SQLite używa kombinacji wartości w tych kolumnach do oceny duplikatu.
SQLite uważa NULL
wartości jako duplikaty. Jeśli używasz DISTINCT
klauzula z kolumną, która ma NULL
wartości, SQLite zachowa jeden wiersz NULL
wartość.
W teorii baz danych, jeśli kolumna zawiera NULL
wartości, oznacza to, że nie mamy informacji o tej kolumnie poszczególnych rekordów lub informacje te nie mają zastosowania.
Na przykład, jeśli klient ma numer telefonu z NULL
wartość, oznacza to, że nie mamy informacji o numerze telefonu klienta w momencie rejestrowania informacji o kliencie lub klient może w ogóle nie mieć numeru telefonu.
SQLite SELECT DISTINCT
przykłady
Będziemy korzystać z customers
tabeli w przykładowej bazie danych do demonstracji.
Załóżmy, że chcesz poznać miasta, w których znajdują się klienci, możesz użyć SELECT
oświadczenie, aby pobrać dane z city
kolumna customers
tabela w następujący sposób:
SELECT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Zwraca 59 wierszy. Istnieje kilka zduplikowanych wierszy, takich jak Berlin
London
i Mountain View
Aby usunąć te zduplikowane wiersze, użyj DISTINCT
klauzula w następujący sposób:
SELECT DISTINCT city
FROM customers
ORDER BY city;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Zwraca 53 wiersze, ponieważ DISTINCT
klauzula usunęła 6 zduplikowanych wierszy.
SQLite SELECT DISTINCT
na wielu kolumnach
Poniższe stwierdzenie zawiera miasta i kraje wszystkich klientów.
SELECT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Zestaw wyników zawiera zduplikowane miasto i kraj, np. Sao Paulo w Brazylii, jak pokazano na powyższym zrzucie ekranu.
Aby usunąć duplikat miasta i kraju, zastosuj DISTINCT
klauzulę do kolumn miasta i kraju, jak pokazano w następującym zapytaniu:
SELECT DISTINCT
city,
country
FROM
customers
ORDER BY
country;
Code language: SQL (Structured Query Language) (sql)
Oto częściowe wyjście:
Jak wspomniano wcześniej, SQLite używa kombinacji miasta i kraju do oceny duplikatu.
SQLite SELECT DISTINCT
z NULL
przykład
To oświadczenie zwraca nazwy firm klientów od customers
tabela.
SELECT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Zwraca 59 wierszy z wieloma NULL
wartości.
Teraz, jeśli zastosujesz DISTINCT
klauzuli instrukcji, zachowa tylko jeden wiersz z NULL
wartość.
Zobacz następujące oświadczenie:
SELECT DISTINCT company
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
Instrukcja zwraca 11 wierszy z jednym NULL
wartość.
Zauważ, że jeśli wybierzesz listę kolumn z tabeli i chcesz uzyskać unikalną kombinację niektórych kolumn, możesz użyć GROUP BY
klauzula.
W tym samouczku nauczyłeś się, jak usuwać zduplikowane wiersze z zestawu wyników za pomocą SQLite SELECT DISTINCT
klauzula.