Sdílet prostřednictvím


Práce se sloupci v agregačních dotazů

Při vytváření agregačních dotazů Dotaz a zobrazit nástroje Designer z určitých předpokladů, takže jej můžete vytvořit platný dotaz.Například Jestliže vytváříte agregační dotaz a označíte sloupec jako výstupní, dotaz a Návrhář zobrazení automaticky provede sloupec součástí klauzule GROUP by tak, aby se nepokusili zobrazit v souhrnu obsah jednotlivého řádku.

Pomocí Seskupit podle

Dotaz a Návrhář zobrazení používá následující pokyny pro práci se sloupci:

  • Zvolte možnost Seskupit podle nebo přidat do dotazu agregační funkci, jsou všechny sloupce označené jako výstupní nebo použité k řazení automaticky přidány do klauzule GROUP by.Sloupce nejsou automaticky přidáni do klauzule GROUP by v případě, že jsou již součástí agregační funkci.

    Pokud nechcete, aby se zejména sloupec do klauzule GROUP by, ručně změnit jeho výběrem jiné možnosti skupiny ve sloupci kritéria podokna.Však dotaz a Návrhář zobrazení nezabrání můžete zvolit, výsledkem dotazu, který nelze spustit.

  • Pokud ručně přidat výstupní sloupec dotazu na agregační funkci v obou kritérií nebo podokna SQL dotazu a zobrazení Návrhář dotazu automaticky neodstraní ostatní výstupní sloupce.Proto musí odstranit zbývající sloupce z výstupu dotazu nebo jejich součástí klauzule GROUP by nebo v agregační funkci.

Zadáte-li podmínku vyhledávání do sloupce Kritéria podokna filtru dotazu a Návrhář zobrazení postupuje takto:

  • Pokud Group není zobrazen sloupec mřížky (protože jste ještě neurčili agregační dotaz), je podmínka vyhledávání umístěna do klauzule WHERE.

  • Pokud jste již v agregačním dotazu a vybrali jste možnost kde v Group sloupec, je podmínka vyhledávání umístěna do klauzule WHERE.

  • Pokud Group sloupec obsahuje jinou hodnotu než kde, je podmínka vyhledávání umístěna do klauzule HAVING.

Pomocí klauzule HAVING a kde doložky

Následující principy popisují, jak lze odkazovat sloupci v agregačním dotazu v podmínkách vyhledávání.Obecně lze použít sloupec v podmínce vyhledávání, filtrování řádků, které mají být sumarizována (klauzule WHERE) nebo určit, které seskupené výsledky se zobrazí v konečném výstupu (klauzule HAVING).

  • Jednotlivé datové sloupce se mohou objevit v buď WHERE nebo HAVING v závislosti na jejich použití jinde v dotazu.

  • Pokud klauzule slouží k výběru podskupiny řádků určených ke shrnutí a seskupení a je proto použita před vlastním seskupením.Proto můžete data sloupce v klauzuli WHERE i v případě, že není součástí klauzule GROUP by nebo v agregační funkci obsažena.Následující příkaz například vybere všechny knihy, které více než $10,00 nákladů a vypočítá průměrnou cenu:

    SELECT AVG(price)
    FROM titles
    WHERE price > 10
    
  • Pokud vytvoříte podmínku vyhledávání, která zahrnuje sloupce se také používá v klauzuli GROUP by nebo v agregační funkci, je podmínka vyhledávání, může se objevit jako klauzule WHERE nebo klauzuli HAVING – můžete rozhodnout, která vytvořte podmínku.Následující příkaz například vytvoří průměrné ceny knih jednotlivých vydavatelů a pak zobrazí průměr pro vydavatele, ve kterých je průměrná cena vyšší než $10,00:

    SELECT pub_id, AVG(price)
    FROM titles
    GROUP BY pub_id
    HAVING (AVG(price) > 10)
    
  • Používáte-li v podmínce vyhledávání agregační funkci, podmínky souhrnný a musí proto být součástí klauzule HAVING.

Viz také

Další zdroje

Shrnutí výsledků dotazu

Řazení a seskupování výsledků dotazu