Jakie są różnice pomiędzy WHERE a HAVING?


Najprościej mówiąc WHERE służy do filtrowania wierszy przed grupowaniem (agregowaniem), natomiast HAVING służy do filtrowania danych po grupowaniu bądź wyników funkcji agregujących.

SELECT Name, avg(high)
FROM dbo.Users
WHERE NAME IS NOT NULL
HAVING avg(high) > 180

Pozostałe różnice:

  • Klauzula WHERE może być używana wraz z poleceniami SELECT, INSERT oraz UPDATE, natomiast HAVING jedynie z poleceniem SELECT
  • W klauzuli WHERE nie można używać funkcji agregujących, w klauzuli HAVING można.

Ważne: W przypadku, gdy w kwerendzie nie użyto GROUP BY, HAVING ma takie samo zastosowanie jak WHERE

alsenq 02-02-2022 01:41
Czy Where vs Having w różnych silinkach, np Oracle i SQL server różnią się tym samym?


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci