Ce face DISTINCT
SELECT DISTINCT păstrează o singură dată fiecare combinație de valori. Cu o singură coloană, obții lista valorilor unice, de exemplu toate orașele în care ai clienți.
Cu mai multe coloane, un rând este duplicat doar dacă toate coloanele sunt identice. COUNT(DISTINCT coloana) numără valorile unice.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE clienti (
id INT PRIMARY KEY,
nume VARCHAR(50) NOT NULL,
oras VARCHAR(30),
email VARCHAR(100)
);
INSERT INTO clienti VALUES
(1, 'Ana Pop', 'Cluj', 'ana@exemplu.ro'),
(2, 'Bogdan Ionescu', 'Sibiu', NULL),
(3, 'Cristina Marin', 'Cluj', 'cristina@exemplu.ro'),
(4, 'Dan Stoica', 'Arad', NULL);
Exemplul 1: Orașele unice
SELECT oras FROM clienti ORDER BY oras;
SELECT DISTINCT oras FROM clienti ORDER BY oras;
Rezultat
+-------+
| oras |
+-------+
| Arad |
| Cluj |
| Cluj |
| Sibiu |
+-------+
+-------+
| oras |
+-------+
| Arad |
| Cluj |
| Sibiu |
+-------+
Exemplul 2: Câte orașe diferite
SELECT COUNT(DISTINCT oras) FROM clienti;
Rezultat
+----------------------+
| COUNT(DISTINCT oras) |
+----------------------+
| 3 |
+----------------------+
Greșeli frecvente
- Pui
DISTINCTca să ascunzi duplicatele apărute dintr-unJOINgreșit. Repară condițiaON. - Crezi că
DISTINCTse aplică doar primei coloane. Se aplică întregului rând.