Выборка уникальных значений. Оператор DISTINCT
С помощью оператора DISTINCT можно выбрать уникальные данные по определенным столбцам.
К примеру, разные товары могут иметь одних и тех же производителей, и, допустим, у нас следующая таблица товаров:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | USE productsdb;DROP TABLE IF EXISTS Products; CREATE TABLE Products(Id INT AUTO_INCREMENT PRIMARY KEY,ProductName VARCHAR(30) NOT NULL,Manufacturer VARCHAR(20) NOT NULL,ProductCount INT DEFAULT 0,Price DECIMAL NOT NULL);INSERT INTO Products (ProductName, Manufacturer, ProductCount, Price)VALUES('iPhone X', 'Apple', 3, 71000),('iPhone 8', 'Apple', 3, 56000),('Galaxy S9', 'Samsung', 6, 56000),('Galaxy S8', 'Samsung', 2, 46000),('Honor 10', 'Huawei', 3, 26000); |
Выберем всех производителей:
| 1 | SELECT Manufacturer FROM Products; |

Однако при таком запросе производители повторяются. Теперь применим оператор DISTINCT для выборки уникальных значений:
| 1 | SELECT DISTINCT Manufacturer FROM Products; |

Также мы можем задавать выборку уникальных значений по нескольким столбцам:
| 1 | SELECT DISTINCT Manufacturer, ProductCount FROM Products; |
В данном случае для выборки используются столбцы Manufacturer и ProductCount. Из пяти строк только для двух строк эти столбцы имеют повторяющиеся значения. Поэтому в выборке будет 4 строки:
