Access 中的 GROUP BY 子句將指定欄位清單中相同的值記錄合併為單筆記錄。 如果您在 SELECT 陳述式中包含 SQL 彙總函數 (例如 Sum 或 Count),則會為每筆記錄建立摘要值。
語法
SELECT fieldlist
FROM table WHERE criteria [GROUP BY groupfieldlist]包含 GROUP BY 子句的 SELECT 陳述式包括下列參數:
部分 |
描述 |
fieldlist |
要擷取的一或多個欄位名稱,以及任何欄位名稱的別名、SQL 彙總函數、選取述詞 (ALL、DISTINCT、DISTINCTROW 或 TOP),或是其他 SELECT 陳述式選項。 |
table |
從其中擷取記錄之資料表的名稱。 |
criteria |
選取準則。 如果陳述式包含 WHERE 子句,則 Microsoft Access 資料庫引擎會在將 WHERE 條件套用到記錄後,對值進行分組。 |
groupfieldlist |
分組記錄的名稱最多可用 10 個欄位。 群組層次由 groupfieldlist 中的欄位名稱順序決定,從最高到最低層級群組。 |
備註
GROUP BY 是選用子句。
如果 SELECT 陳述式中不包含 SQL 彙總函數,就會省略摘要值。
GROUP BY 欄位中的 Null 值會分組,不會省略。 不過,Null 值不會在任何 SQL 彙總函數中進行評估。
使用 WHERE 子句可以排除不想群組的列,使用 HAVING 子句可以篩選群組後的記錄。
除非包含 [備忘] 或 [OLE 物件] 資料,否則,只要 SELECT 陳述式包含至少一個 SQL 彙總函數,GROUP BY 欄位清單中的欄位就可以參照到 FROM 子句中列出之任何資料表的任何欄位,即使此欄位不包含在 SELECT 陳述式中。 Microsoft Access 資料庫引擎無法對 [備忘] 或 [OLE 物件] 欄位進行分組動作。
SELECT 欄位清單中的所有欄位都必須納入 GROUP BY 子句,或做為引數納入 SQL 彙總函數。