Ce face MIN / MAX
MIN și MAX găsesc valoarea minimă și maximă. Merg pe numere, date (cea mai veche și cea mai nouă) și texte (ordinea alfabetică).
Ele returnează doar valoarea, nu rândul întreg. Dacă vrei și celelalte coloane ale produsului celui mai scump, folosește ORDER BY pret DESC LIMIT 1.
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);
CREATE TABLE comenzi (
id INT PRIMARY KEY,
client_id INT,
data DATE,
total INT
);
INSERT INTO comenzi VALUES
(101, 1, '2026-09-03', 3580),
(102, 3, '2026-09-15', 650),
(103, 1, '2026-10-02', 1200),
(104, 2, '2026-10-11', 80);
Exemplul 1: Cea mai mică și cea mai mare comandă
SELECT MIN(total), MAX(total) FROM comenzi;
Rezultat
+------------+------------+
| MIN(total) | MAX(total) |
+------------+------------+
| 80 | 3580 |
+------------+------------+
Exemplul 2: Prima și ultima comandă
SELECT MIN(data) AS prima, MAX(data) AS ultima FROM comenzi;
Rezultat
+------------+------------+
| prima | ultima |
+------------+------------+
| 2026-09-03 | 2026-10-11 |
+------------+------------+
Exemplul 3: Rândul întreg al celei mai mari comenzi
SELECT * FROM comenzi ORDER BY total DESC LIMIT 1;
Rezultat
+-----+-----------+------------+-------+
| id | client_id | data | total |
+-----+-----------+------------+-------+
| 101 | 1 | 2026-09-03 | 3580 |
+-----+-----------+------------+-------+
Greșeli frecvente
- Scrii
SELECT client_id, MAX(total) FROM comenziși crezi căclient_idaparține comenzii maxime. În MySQL 8, interogarea dă eroare (ONLY_FULL_GROUP_BY). În versiunile vechi, valoarea este a unui rând oarecare.