Agregační funkce: Porovnání verzí

Přidáno 52 bajtů ,  před 2 lety
m
(→‎Externí odkazy: Obsah z puvodni domeny powerbiskoleni.cz byl presunut na web biportal.cz. Odkazovany zdroj je identicky)
 
'''Syntaxe HAVING:'''
<source lang="SQL">
SELECT zeme, COUNT(*) AS Pocet
FROM zamestnanci
GROUP BY zeme
HAVING COUNT(*)>1
</source>
 
'''Časté chyby: Záměna HAVING A WHERE'''
 
Často dochází k zámeně konstrukcí <code>HAVING</code> a <code>WHERE</code> a agregační funkce je napsána do <code>WHERE</code>. Podívejme se na následující skript:
<source lang="SQL">
SELECT zeme, COUNT(*) AS Pocet
FROM zamestnanci
WHERE COUNT(*)>1
GROUP BY zeme
</source>
Výsledkem skriptu bude chyba. Důvodem je logické zpracování dotazu (tzv. ''logical query prosessing''), kdy je konstrukce <code>WHERE</code> zpracována dříve než <code>GROUP BY</code>. Snažíme se tedy seskupit řádky na základě agregační funkce, která ještě není spočítána.<ref>[http://www.powerbiskoleni.cz/sql-having-vs-where/]</ref>
 
34

editací