This is a method for the dplyr summarise() generic. It generates the SELECT clause of the SQL query, and generally needs to be combined with group_by().

# S3 method for tbl_lazy
summarise(.data, ..., .groups = NULL)



A lazy data frame backed by a database query.


<data-masking> Variables, or functions or variables. Use desc() to sort a variable in descending order.


Experimental lifecycle Grouping structure of the result.

  • "drop_last": dropping the last level of grouping. This was the only supported option before version 1.0.0.

  • "drop": All levels of grouping are dropped.

  • "keep": Same grouping structure as .data.

When .groups is not specified, it defaults to "drop_last".

In addition, a message informs you of that choice, unless the result is ungrouped, the option "dplyr.summarise.inform" is set to FALSE, or when summarise() is called from a function in a package.


Another tbl_lazy. Use show_query() to see the generated query, and use collect() to execute the query and return data to R.


library(dplyr, warn.conflicts = FALSE) db <- memdb_frame(g = c(1, 1, 1, 2, 2), x = c(4, 3, 6, 9, 2)) db %>% summarise(n()) %>% show_query()
#> <SQL> #> SELECT COUNT(*) AS `n()` #> FROM `dbplyr_029`
db %>% group_by(g) %>% summarise(n()) %>% show_query()
#> <SQL> #> SELECT `g`, COUNT(*) AS `n()` #> FROM `dbplyr_029` #> GROUP BY `g`