共用方式為


摺疊資料列群組(Visual Database Tools)

適用於:SQL Server

您可以建立查詢結果,其中每個結果數據列對應至原始數據中的整個數據列群組。 當折疊數據列時,有數件事要牢記在心:

  • 您可以排除重複的數據列 某些查詢可以建立結果集,其中會出現多個相同的數據列。 例如,您可以建立一個結果集,其中每個數據列都包含包含作者的城市和州名,但如果城市包含數個作者,則會有數個相同的數據列。 產生的 SQL 看起來可能像這樣:

    SELECT city,
           state
    FROM authors;
    

    上述查詢所產生的結果集並不十分有用。 如果城市包含四個作者,結果集會包含四個相同的數據列。 由於結果集不包含城市和州以外的任何數據行,因此無法區分相同的數據列彼此。 避免這類重複數據列的其中一個方法是包含其他數據行,使數據列不同。 例如,如果您包含作者名稱,則每個數據列都不同(前提是沒有任何兩個類似名稱的作者位於任何一個城市內)。 產生的 SQL 看起來可能像這樣:

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

    當然,上述查詢會排除徵兆,但無法真正解決問題。 也就是說,結果集中沒有重複項目,但是它不再是關於城市的結果集。 若要消除原始結果集中的重複項目,且每個資料列仍能描述城市,您可以建立只傳回相異資料列的查詢。 產生的 SQL 看起來可能像這樣:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    如需排除重複項目的詳細資訊,請參閱 排除重複的數據列

  • 您可以計算數據列群組 也就是說,您可以匯總數據列群組中的資訊。 例如,您可以建立結果集,其中每個數據列都包含包含作者的城市和州名,再加上該城市中包含的作者數目計數。 產生的 SQL 看起來可能像這樣:

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

    如需計算數據列群組的詳細資訊,請參閱 摘要查詢結果排序和群組查詢結果

  • 您可以使用選取準則來包含數據列群組 例如,您可以建立結果集,其中每個數據列都包含包含數位作者的城市和州名,再加上該城市所包含的作者數目。 產生的 SQL 看起來可能像這樣:

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

    如需在數據列群組上套用選取準則的詳細資訊,請參閱在相同查詢中 指定群組 的條件 和使用 HAVING 和 WHERE 子句