پرش به مطلب اصلی

sql

فرق having و where چیه؟

  • ا**WHERE** فیلتر روی سطرهای خام جدول انجام می‌ده، یعنی قبل از هر نوع گروه‌بندی (GROUP BY).
  • ا**HAVING** فیلتر روی گروه‌ها انجام می‌ده، یعنی بعد از اینکه گروه‌بندی (GROUP BY) انجام شد.
SELECT name, department, salary FROM employees WHERE salary > 5000;
SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 6000;

بطور خلاصه مثلا وقتی یه فیلدی رو گروه میکنی مثل salary و میخوای توی این حالت شرظ بزاری میگن