Sobes.tech
Middle

Standards küsimus SQL kohta: mis vahe on WHERE ja HAVING vahel?

sobes.tech AI

Vastus AI-lt

Peamine erinevus WHERE ja HAVING vahel SQL-is seisneb selles, millal nad andmeid filtreerivad:

  • WHERE filtreerib read enne rühmitamist. Kasutatakse algandmekogumi piiramiseks.
  • HAVING filtreerib rühmad pärast agregaatfunktsioonide ja rühmitamise (GROUP BY) rakendamist.

Näide:

SELECT osakond, COUNT(*) kui töötajate_arv
FROM töötajad
WHERE palk > 50000  -- filtreerib töötajaid, kelle palk on > 50000
GROUP BY osakond
HAVING COUNT(*) > 10      -- valib osakonnad, kus on rohkem kui 10 töötajat

Siin piirab WHERE algseid ridu, ja HAVING lõplikke gruppe.