Není problém GROUP BY v derivované tabulce, že na derivované tabulce neexistuje index a tak je pak spojení mnohem pomalejší než co se ušetřilo na GROUP BY?
To záleží na okolnostech. Pokud bude mít derivovaná tabulka do 1000 záznamů, tak index nehraje roli (taky dost často končí select v derivované tabulce LIMITem). Pri vetsim poctu uz je na zvazeni, co se vyplati. Na to aby se chytil index na GROUP BY tak musi byt vsechny sloupce ve slozenem indexu, coz namena minimalne jeden slozeny index navic. Nebo select do docasne tabulky. Tu oindexovat a pak provest spojeni. V mem prikladu pokud mam mene nez 1000 oddeleni, pak derevovana tabulka nevrati vic nez 1000 radku. Jinak, derivovanou tabulku pouziji, kdyz mi diky ni dojde k vyznamne redukci poctu radek tabulek, ktere vstupuji do JOINu.
A jeste se doplnim. Zalezi na enginu. Je rozdil mezi MySQL a Postgresem. V MySQL se nijak zvlast nedoporucuje pouzivat derivovane tabulky. Presto jsem tam tuto techniku uspesne pouzil. Ale jednalo se o denormalizovane (siroke) tabulky cca 30-40 sloupcu), takze redukce objemu dat pomoci derivovane tabulky byla docela vyrazna.