如何:對查詢結果中的資料列進行群組
如果您要建立小計,或顯示資料表子集的其他摘要資訊,請使用彙總查詢 (Aggregate Query) 建立群組。 每個群組都會針對資料表中具有相同值的所有資料列摘要資料。
例如,您可能想查看 titles 資料表中某本書的平均價格,但是想依照發行者顯示結果。 若要這麼做,請依照發行者將查詢分組 (例如,pub_id)。 查詢的結果輸出可能如下所示:
將資料分組時,您只能顯示摘要或分組的資料,例如:
分組資料行 (出現在 GROUP BY 子句中的資料行) 的值。 在上述範例中,pub_id 就是分組資料行。
SUM( ) 和 AVG( ) 等彙總函式 (Aggregate Function) 所產生的值。 在上述範例中,第二個資料行是對 price 資料行套用 AVG( ) 函式所產生的結果。
您不能顯示個別資料列的值。 例如,如果您只依照發行者分組,就不能在查詢中顯示個別標題。 因此,如果您將資料行加入至查詢輸出,查詢和檢視表設計工具就會自動將這些資料行加入至 SQL 窗格中的陳述式 GROUP BY 子句。 如果您要改為彙總資料行,您可以針對該資料行指定彙總函式。
如果您依照一個以上的資料行分組,查詢中的每個群組便會顯示所有群組資料行的彙總值。
例如,下列針對 titles 執行的查詢同時依照發行者 (pub_id) 以及書籍類型 (type) 進行分組。 查詢結果將依照發行者的順序排列,並顯示發行者出版的每一種不同書籍類型的摘要資訊:
SELECT pub_id, type, SUM(price) Total_price
FROM titles
GROUP BY pub_id, type
產生的輸出將如下所示:
注意事項 |
---|
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
若要將資料列分組
將您要摘要的資料表加入至 [圖表] 窗格,以便開始進行查詢。
在 [圖表] 窗格的背景上按一下滑鼠右鍵,然後從捷徑功能表中選擇 [加入群組依據]。 [查詢和檢視表設計工具] 會將 [群組依據] 資料行加入至 [準則] 窗格的方格中。
將您想分組的一或多個資料行加入至 [準則] 窗格。 如果您想讓資料行出現在查詢輸出中,務必選取 [輸出] 資料行進行輸出。
[查詢和檢視表設計工具] 會將 GROUP BY 子句加入至 [SQL] 窗格的陳述式中。 例如,SQL 陳述式將如下所示:
SELECT pub_id FROM titles GROUP BY pub_id
將您想彙總的一或多個資料行加入至 [準則] 窗格。 務必標記資料行以進行輸出。
在要彙總資料行的 [群組依據] 方格儲存格中,選取適當的彙總函式。
[查詢和檢視表設計工具] 會自動將資料行別名指派給您要加總的資料行。 您可以使用較有意義的別名取代這個自動產生的別名。 如需詳細資訊,請參閱 如何:建立資料行別名。
[SQL] 窗格中的對應陳述式將如下所示:
SELECT pub_id, SUM(price) AS Totalprice FROM titles GROUP BY pub_id