Group By Clause in Access Query


Access Group By Clause

Group By SQL clause is a query command used to combine data based on the value(s) in the field(s) of a table(s).  The Group By clause is most often used in combination with one or more aggregate functions.

The basic syntax of the Group By statement is:

Group By TableName.Field1, TableName.Field2

The Access group by clause comes after the where clause of a query and before the optional having clause in the query:

Select TableName.FieldName1, Count(TableName.Field2),Avg(TableName.Field3) From TableName Where your criteriaGroup By TableName.FieldName1 Having some criteria.

Note: The ending semicolon is a required component of all SQL statements.

Now see the Access group by clause with real column and table names:

Select M_Employees.Emp_Name, Sum(iif(Daily_Absence=true,1,0)), Avg(Daily_Hours) From M_Employees Where M_Employees.Work_Date>=#01/01/05# and M_Employees.Work_Date<=#03/31/05# Group By M_Employees.Emp_Name Having Sum(iif(Daily_Absence=true,1,0))>3;

The above query will select distinct employee names whose daily absences total more than 3 during the 1st quarter of 2005 and will display the average of the hours worked per day during the same time period grouped by emp_name.

More Group By Query Examples and Discussion:

Aggregate Functions
Aggregates are most often used in combination with an SQL Group By clause. … Note there is no Group By which is normally associated with an aggregate function…

Having Clause SQL
SQL Having clause: The having clause is used in conjunction with the SQL group by clause and aggregate functions to categorize and summarize data into groups…

Microsoft Office:
MS Access 2000 Through Access 2016 & Office 365
Contact Information

Development in Microsoft Access, Microsoft SQL/Server and Azure

See our SQL/Server Development and Access Migration Tutorials


Microsoft Office VBA, MS Access 2003, 2007, 2010, 2013, 2016