V výukovém programu D chcete získat součet platu :
SUMMARIZE emp BY { job } ADD ( SUM ( sal ) AS total_sal )
Agregace poznámek není relační operátor, proto nebude tvořit součást relační algebry.
Pokud jde o HAVING
, je to historická anomálie. Před standardem SQL-92 nebylo možné napsat SELECT
výrazy v FROM
klauzule (a.k.a odvozené tabulky), tj. museli jste udělat veškerou práci v jednom SELECT
výraz. Kvůli rigidnímu pořadí hodnocení SQL nevznikne agregovaná hodnota za WHERE
klauzule byla vyhodnocena, tj. nebylo možné použít omezení na základě agregovaných hodnot. HAVING
byl představen k řešení tohoto problému.
Ale i s HAVING
SQL zůstávalo relativně neúplné, pokud jde o Codd's, dokud nebyly zavedeny odvozené tabulky. Odvozené tabulky vykresleny HAVING
redundantní, ale pomocí HAVING
je stále populární (pokud je Stackoverflow něco, čím by se dalo jít):zdá se, že lidé stále rádi používají jeden SELECT
kde je to možné a výše zmíněná rigidita SQL, pokud jde o pořadí hodnocení (projekce se provádí jako poslední v SELECT
výraz) činí použití odvozené tabulky ve srovnání s HAVING
poměrně podrobným .