次の方法で共有


クエリ結果の行のグループ化 (Visual Database Tools)

適用対象:SQL Server

小計を作成したり、テーブルのサブセットに関するその他の概要情報を表示したりする場合は、集計クエリを使用してグループを作成します。 各グループは、同じ値を持つテーブル内のすべての行のデータを集計します。

たとえば、titles テーブルに書籍の平均価格を表示し、発行元別に結果を分割することができます。 そのためには、クエリを発行元別にグループ化します (たとえば、pub_id)。 結果のクエリ出力は次のようになります。

クエリ結果: 発行元別にグループ化された平均価格 別にグループ化された平均価格

データをグループ化すると、次のような概要またはグループ化されたデータのみを表示できます。

  • グループ化された列 (GROUP BY 句に表示される列) の値。 上の例では、pub_id はグループ化された列です。

  • SUM( ) や AVG( など) の集計関数によって生成される値。 上の例では、2 番目の列は、avg( ) 関数と price 列を使用して生成されます。

個々の行の値を表示することはできません。 たとえば、発行元によってのみグループ化する場合、クエリに個々のタイトルを表示することもできません。 そのため、クエリ出力に列を追加すると、クエリおよびビュー デザイナー は、SQL ペインのステートメントの GROUP BY 句に列を自動的に追加します。 代わりに列を集計する場合は、その列の集計関数を指定できます。

複数の列でグループ化すると、クエリ内の各グループにすべてのグループ化列の集計値が表示されます。

たとえば、titles テーブルに対する次のクエリは、パブリッシャー (pub_id) および書籍の種類 (type) によってグループ化されます。 クエリ結果は発行元ごとに並べ替え、発行元が生成する書籍の種類ごとに概要情報を表示します。

SELECT pub_id, type, SUM(price) Total_price  
FROM titles  
GROUP BY pub_id, type  

結果の出力は次のようになります。

クエリの結果: 発行元とタイプ別に価格がグループ化されています

行をグループ化するには

  1. 集計するテーブルをダイアグラム ペインに追加して、クエリを開始します。

  2. ダイアグラム ウィンドウの背景を右クリックし、ショートカットメニューから [グループの追加] を選択します。 クエリおよびビュー デザイナーは、[抽出条件] ペインのグリッドに グループ化列を追加します。

  3. グループ化する列または列群を基準ペインに追加します。 クエリ出力に列を表示する場合は、出力 列が出力用に選択されていることを確認します。

    クエリおよびビュー デザイナーは、SQL ペインのステートメントに GROUP BY 句を追加します。 たとえば、SQL ステートメントは次のようになります。

    SELECT pub_id  
    FROM titles  
    GROUP BY pub_id  
    
  4. 集計する列を抽出条件ペインに追加します。 列が出力用にマークされていることを確認します。

  5. 集計する列の [グループ化] グリッド セルで、適切な集計関数を選択します。

    クエリおよびビュー デザイナーは、集計する列に列の別名を自動的に割り当てます。 自動的に生成されたこのエイリアスは、より意味のあるエイリアスに置き換えることができます。 詳細については、列の別名の作成に関するページをご覧ください。

    クエリ結果セットに列エイリアスを追加する

    SQL ペインの対応するステートメントは次のようになります。

    SELECT   pub_id, SUM(price) AS Totalprice  
    FROM     titles  
    GROUP BY pub_id  
    

関連項目

クエリ結果の並べ替えとグループ化の