157/224
\begin{frame}
  \frametitle{Group By}

  \begin{goal}{}
    The groups are formed \emph{after} the evaluation of the \sql{from} and \sql{where} clauses.
    Aggregation is subsequently done for every group (yielding as many rows as groups).
  \end{goal}

  \begin{goal}{}
    The \sql{group by} \emph{never} produces empty groups.
  \end{goal}
  
  \begin{goal}{}
    The \sql{group by} attributes may be used in the \sql{select} clause
    since they have a \emph{unique value for every group}.
    \begin{itemize}
      \item A reference to any other attribute is illegal.
    \end{itemize}
  \end{goal}
  
  \begin{code}{0.95\textwidth}{Wrong!}
    {\footnotesize
    \BUseVerbatim{query}}
  \end{code}
  \remark{%
    Wrong, although \sql{E.number} functionally determines \sql{E.topic} which thus is unique (for every group).
  }
\end{frame}