Ce face GREATEST() și LEAST()
GREATEST() și LEAST() compară valori de pe același rând. Pentru valoarea maximă dintr-o coloană (pe mai multe rânduri) se folosesc MAX() și MIN().
Dacă unul dintre argumente este NULL, rezultatul este NULL.
Parametri
| Parametru | Descriere |
|---|---|
valoare1, valoare2, ... |
Valorile comparate (cel puțin două). |
Ce returnează
Valoarea cea mai mare / cea mai mică sau NULL.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(30),
pret DECIMAL(10,2),
stoc INT,
reducere INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 3499.90, 4, NULL),
(2, 'Mouse', 79.50, 25, 10),
(3, 'Birou', 899.00, 0, 15),
(4, 'Scaun', 649.99, 7, NULL),
(5, 'Monitor', 1199.00, 3, 5);
Exemplul 1: Valori simple și NULL
SELECT GREATEST(3, 9, 1) AS maxim, LEAST(3, 9, 1) AS minim, GREATEST(3, NULL) AS cu_null;
Rezultat
+-------+-------+---------+
| maxim | minim | cu_null |
+-------+-------+---------+
| 9 | 1 | NULL |
+-------+-------+---------+
Exemplul 2: Prețul nu scade sub un minim
SELECT nume, pret, GREATEST(pret * 0.8, 100) AS pret_redus_cu_minim
FROM produse
ORDER BY id;
Rezultat
+---------+---------+---------------------+
| nume | pret | pret_redus_cu_minim |
+---------+---------+---------------------+
| Laptop | 3499.90 | 2799.920 |
| Mouse | 79.50 | 100.000 |
| Birou | 899.00 | 719.200 |
| Scaun | 649.99 | 519.992 |
| Monitor | 1199.00 | 959.200 |
+---------+---------+---------------------+
Greșeli frecvente
- Folosești
GREATEST(pret)ca să afli cel mai mare preț din tabel. Pentru coloane, foloseșteMAX(pret).
Comenzi înrudite
MIN / MAX: Returnează cea mai mică și cea mai mare valoare dintr-o coloană.COALESCE / IFNULL: Înlocuiește NULL cu o valoare implicită: returnează prima valoare care nu este NULL.INTERVAL(): Returnează în al câtelea interval se află un număr, față de o listă crescătoare de praguri.