Sobes.tech
Junior — Middle

SQL-деги HAVING жана WHERE операторлору арасындагы айырма жана кайсы учурларда колдонуш керек?

sobes.tech AI

AIден жооп

WHERE оператору маалыматтарды топтоо алдында саптарды фильтрлөө үчүн колдонулат. Ал кийинки операцияларга катыша турган саптарды тандоого мүмкүндүк берет, мисалы, агрегаттык функциялар.

HAVING оператору топтолгон маалыматтарды фильтрлөө үчүн колдонулат, башкача айтканда, GROUP BY аткарылган соң. Ал топторду агрегаттык шарттарга ылайык фильтрлөөгө мүмкүндүк берет.

Мисал:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- маяна боюнча саптарды фильтрлөө
GROUP BY department
HAVING COUNT(*) > 5      -- кызматкерлердин саны боюнча топторду фильтрлөө

Жыйынтык:

  • WHERE жеке жазууларды топтоодон мурда фильтрлейт.
  • HAVING топтолгондон кийин топторду фильтрлейт.

Шарттар үчүн WHERE колдонуп, агрегаттык функциялар үчүн HAVING колдонуу керек.