GREATEST() și LEAST() în MySQL

Cea mai mare, respectiv cea mai mică valoare dintre argumente (pe același rând).

Sintaxă
GREATEST(valoare1, valoare2, ...)
LEAST(valoare1, valoare2, ...)

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ște MAX(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.