適用於: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 子句。