Skip to content

Commit 8975cf7

Browse files
authored
Add translation for median() (#1011)
1 parent 2d8902f commit 8975cf7

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

R/backend-dbplyr__duckdb_connection.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ sql_translation.duckdb_connection <- function(con) {
356356
sql_translator(
357357
.parent = base_agg,
358358
prod = sql_aggregate("PRODUCT"),
359+
median = sql_aggregate("MEDIAN"),
359360
cor = sql_aggregate_2("CORR"),
360361
cov = sql_aggregate_2("COVAR_SAMP"),
361362
sd = sql_aggregate("STDDEV", "sd"),
@@ -370,6 +371,7 @@ sql_translation.duckdb_connection <- function(con) {
370371
sql_translator(
371372
.parent = base_win,
372373
prod = win_aggregate("PRODUCT"),
374+
median = win_aggregate("MEDIAN"),
373375
cor = win_aggregate_2("CORR"),
374376
cov = win_aggregate_2("COVAR_SAMP"),
375377
sd = win_aggregate("STDDEV"),

tests/testthat/test-backend-dbplyr__duckdb_connection.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ test_that("aggregators translated correctly", {
262262
expect_equal(translate(prod(x, na.rm = TRUE), window = FALSE), sql(r"{PRODUCT(x)}"))
263263
expect_equal(translate(prod(x, na.rm = TRUE), window = TRUE), sql(r"{PRODUCT(x) OVER ()}"))
264264

265+
expect_equal(translate(median(x), window = FALSE), sql(r"{MEDIAN(x)}"))
266+
expect_equal(translate(median(x), window = TRUE), sql(r"{MEDIAN(x) OVER ()}"))
267+
expect_equal(translate(median(x), window = TRUE, vars_group="z"), sql(r"{MEDIAN(x) OVER (PARTITION BY z)}"))
268+
265269
expect_equal(translate(sd(x, na.rm = TRUE), window = FALSE), sql(r"{STDDEV(x)}"))
266270
expect_equal(translate(sd(x, na.rm = TRUE), window = TRUE), sql(r"{STDDEV(x) OVER ()}"))
267271

0 commit comments

Comments
 (0)