Sobes.tech
Junior — Middle

Ҳангоми кор бо SQL-зурраҳо, фарқияти байни шартҳои WHERE ва HAVING чист?

sobes.tech AI

Ҷавоб аз AI

Дар SQL, шароит WHERE ва HAVING барои филтр кардани маълумот истифода мешаванд, аммо дар марҳилаҳои гуногуни коркарди дархост татбиқ мешаванд:

  • WHERE сатрҳоро пеш аз гурӯҳбандӣ ва ҷамъбандӣ филтр мекунад. Он маҷмӯи маълумотро маҳдуд мекунад, ки дар дархост истифода мешавад.
  • HAVING гурӯҳҳоро пас аз истифодаи функсияҳои ҷамъбандӣ (масалан, SUM, COUNT, AVG) филтр мекунад. Он барои маҳдуд кардани натиҷаҳои ҷамъбандӣ истифода мешавад.

Масал:

SELECT шӯъба, COUNT(*) ҳамчун шумораи_коргарон
FROM коргарон
WHERE маош > 50000       -- филтр кардани коргарон бо маоши > 50000
GROUP BY шӯъба
HAVING COUNT(*) > 10;        -- интихоб кардани шӯъбаҳо бо бештар аз 10 коргар

Ин ҷо, WHERE коргаронро бо маоши баландтар аз 50000 интихоб мекунад, ва HAVING шӯъбаҳоро, ки бештар аз 10 коргар доранд, филтр мекунад.