Cláusula GROUP BY (MICROSOFT Access SQL)
Aplica-se ao: Access 2013 | Access 2016
Combina registros com valores idênticos na lista de campos especificada em um único registro. Um valor de resumo é criado para cada registro se você incluir uma função de agregação de SQL, como Sum ou Count, na instrução SELECT.
Sintaxe
SELECT fieldlist FROM table WHERE criteria [GROUP BY groupfieldlist ]
Uma instrução SELECT que contém a cláusula GROUP BY tem estas partes:
Sair | Descrição |
---|---|
fieldlist | O nome do(s) campo(s) a ser recuperado junto com qualquer alias de nome de campo, funções agregadas do SQL, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP) ou outras opções da instrução SELECT. |
table | O nome da tabela da qual os registros são recuperados. Para obter mais informações, consulte a cláusula FROM. |
critério | Critérios de seleção. Se a instrução incluir uma cláusula WHERE, o mecanismo do banco de dados Microsoft Access agrupará os valores depois de aplicar as condições WHERE aos registros. |
groupfieldlist | Os nomes de até 10 campos utilizados para agrupar registros. A ordem dos nomes de campos em groupfieldlist determina os níveis de agrupamento do mais alto para o mais baixo. |
Comentários
GROUP BY é opcional.
Os valores de resumo serão omitidos se não houver nenhuma função de agregação de SQL na instrução SELECT.
Os valores Null nos campos GROUP BY são agrupados e não são omitidos. Entretanto, os valores Null não são avaliados em nenhuma função de agregação de SQL.
Use a cláusula WHERE para excluir linhas que você não deseja agrupar e use a cláusula HAVING para filtrar registros depois de agrupados.
Exceto se ele contiver Memorando ou dados de Objeto OLE, um campo na lista de campos GROUP BY pode fazer referência a qualquer campo em uma tabela listada na cláusula FROM, mesmo que o campo não esteja incluso na instrução SELECT, desde que a instrução SELECT inclua pelo menos uma função de agregação de SQL. O mecanismo de banco de dados Microsoft® Jet não pode agrupar campos Memorando ou Objeto OLE.
Todos os campos na lista de campos SELECT devem ser incluídos na cláusula GROUP BY ou ser inclusos como argumento em uma função de agregação de SQL.
Exemplo
Este exemplo cria uma lista de cargos exclusiva e o número de funcionários com cada cargo. Ele é chamado procedimento EnumFields, e pode ser encontrado no exemplo da instrução SELECT.
Sub GroupByX1()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' For each title, count the number of employees
' with that title.
Set rst = dbs.OpenRecordset("SELECT Title, " _
& "Count([Title]) AS Tally " _
& "FROM Employees GROUP BY Title;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 25
dbs.Close
End Sub
Para cada cargo exclusivo, esse exemplo calcula o número de funcionários em Washington que têm esse cargo.
Sub GroupByX2()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' For each title, count the number of employees
' with that title. Only include employees in the
' Washington region.
Set rst = dbs.OpenRecordset("SELECT Title, " _
& "Count(Title) AS Tally " _
& "FROM Employees WHERE Region = 'WA' " _
& "GROUP BY Title;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 25
dbs.Close
End Sub
Confira também
- Fórum do Access para desenvolvedores
- Ajuda do Access em support.office.com
- Fóruns do Access no UtterAccess
- Central de ajuda da programação VBA e desenvolvedor do Access (FMS)
- Postagens do Access no StackOverflow
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.