pondělí 2. března 2009

GROUP BY a BY klauzule

Příklad: Potřebujete-li vytvořit report zobrazují „n“ nejlepších poboček v jednotlivých letech, pak využijete funkci TOPN() nebo RANK() s podmínkou.


Bohužel použít samotnou funkci nestačí! Report nyní zobrazuje 5 nejlepších poboček za celé období, ale my chceme 5 nejlepších poboček v jednotlivých letech.



Řešení existují dvě:
  1. Použití GROUP BY klauzule
  2. Použití BY klauzule

1/ GROUP BY klauzule

Na záložce „Pokročilé“ se explicitně specifikuje GROUP BY klauzule, která v případě použití s „Display“ funkcí zajistí reset hodnot pro každou skupinu. V případě použití s „Agregační“ funkcí zajistí součet hodnot pro každou skupinu.


Výsledkem je pak požadovaný report.



2/ BY klauzule

Alternativou je rozšíření „Display“ a „Agregačních“ funkcí o „BY“ klauzuli.


Výsledkem je opět požadovaný report.



Erik Eckhardt.

Žádné komentáře: