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,
DISTINCTklauzula musi pojawić się bezpośrednio poSELECTsłowo kluczowe. - Po drugie, umieszczasz kolumnę lub listę kolumn po
DISTINCTsł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.