次の方法で共有


行のグループを折りたたむ (Visual Database Tools)

適用対象:SQL Server

元のデータの行のグループ全体に対応するクエリ結果を作成できます。 行を折りたたむ場合は、次の点に注意してください。

  • 重複する行を排除 一部のクエリでは、複数の同じ行が表示される結果セットを作成できます。 たとえば、各行に作成者を含む都市の市区町村と州名が含まれる結果セットを作成できますが、市区町村に複数の作成者が含まれている場合は、同じ行が複数存在します。 結果の SQL は次のようになります。

    SELECT city, state  
    FROM authors  
    

    上記のクエリによって生成された結果セットはあまり役に立ちません。 市区町村に 4 人の作成者が含まれている場合、結果セットには 4 つの同じ行が含まれます。 結果セットには city と state 以外の列が含まれていないため、同じ行を互いに区別する方法はありません。 このような重複する行を回避する 1 つの方法は、行が異なる可能性のある追加の列を含める方法です。 たとえば、作成者名を含める場合、各行は異なります (1 つの都市内に同名の作成者が 2 人も存在しない場合)。 結果の SQL は次のようになります。

    SELECT city, state, fname, minit, lname  
    FROM authors  
    

    もちろん、上記のクエリは症状を排除しますが、実際には問題を解決しません。 つまり、結果セットには重複はありませんが、都市に関する結果セットではなくなりました。 元の結果セットの重複をなくし、各行に市区町村を記述するには、個別の行のみを返すクエリを作成できます。 結果の SQL は次のようになります。

    SELECT DISTINCT city, state  
    FROM authors  
    

    重複を排除する方法の詳細については、「重複する行を除外する (Visual Database Tools)を参照してください。

  • 行のグループに基づいて計算できます。つまり、行のグループで情報を集計できます。 たとえば、各行に作成者を含む市区町村の市区町村名と都道府県名と、その市区町村に含まれる作成者の数を含む結果セットを作成できます。 結果の SQL は次のようになります。

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    

    行のグループの計算の詳細については、「クエリ結果の集計 (Visual Database Tools)」および「並べ替えとグループ化のクエリ結果の (Visual Database Tools)を参照してください。

  • 選択条件を使用して行のグループを含めることができます たとえば、各行に複数の作成者を含む市区町村の市区町村名と州名に加えて、その市区町村に含まれる作成者の数を含む結果セットを作成できます。 結果の SQL は次のようになります。

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    HAVING COUNT(*) > 1  
    

    行のグループに選択条件を適用する方法の詳細については、グループの条件の指定 (Visual Database Tools) および 同じクエリで HAVING と WHERE の句を使用する (Visual Database Tools)を参照してください。

関連項目

検索条件の指定 (Visual Database Tools)
クエリとビューの設計方法に関するトピック (Visual Database Tools)