Код: Выделить всё
import duckdb
rel = duckdb.sql('select * from values (1, 4), (1, 5), (2, 6) df(a, b)')
rel
Код: Выделить всё
Out[3]:
┌───────┬───────┐
│ a │ b │
│ int32 │ int32 │
├───────┼───────┤
│ 1 │ 4 │
│ 1 │ 5 │
│ 2 │ 6 │
└───────┴───────┘
Код: Выделить всё
In [5]: rel.aggregate([duckdb.FunctionExpression('mean', duckdb.ColumnExpression('b'))], group_expr='a')
Out[5]:
┌─────────┐
│ mean(b) │
│ double │
├─────────┤
│ 4.5 │
│ 6.0 │
└─────────┘
Есть ли аналогичный способ создать агрегацию «n_unique»? Я ищу что-то вроде
Код: Выделить всё
rel.aggregate([duckdb.FunctionExpression('count_distinct', duckdb.ColumnExpression('b'))], group_expr='a')
Подробнее здесь: https://stackoverflow.com/questions/793 ... tional-api