Data-Mate: `Aggregation Frame Aggregation Frame Aggregation Frame`
aggregation-frame/AggregationFrame.AggregationFrame
A deferred execution frame dedicated to running a aggregations.
This is different from a DataFrame for a few reasons:
- GroupBy and aggregations have to run at the same time in-order to get the correctly results.
- The operations are added to an instruction set and in one optimized execution.
- All methods in the AggregationFrame will mutate the execution instructions instead of return a new instance with the applied changes.
Type parameters
Name | Type |
---|---|
T | extends Record <string , any > |
Table of contents
Constructors
Properties
- _aggregations
- _fieldToColumnIndexCache
- _groupByFields
- _limit
- _selectFields
- _sortFields
- columns
- fields
- metadata
- name
Accessors
Methods
- assign
- avg
- count
- daily
- execute
- getColumn
- getColumnAt
- getColumnOrThrow
- groupBy
- hourly
- limit
- max
- mergeBy
- min
- monthly
- orderBy
- rename
- reset
- run
- select
- sort
- sum
- yearly
Constructors
constructor
• new AggregationFrame<T
>(columns
, options
): AggregationFrame
<T
>
Type parameters
Name | Type |
---|---|
T | extends Record <string , any > |
Parameters
Name | Type | |
---|---|---|
columns | readonly Column <any , keyof T >[] \ | Column <any , keyof T >[] |
options | AggregationFrameOptions |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:89
Properties
_aggregations
• Protected
Readonly
_aggregations: Map
<keyof T
, AggObject
>
The Aggregations to run
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:62
_fieldToColumnIndexCache
• Protected
Optional
_fieldToColumnIndexCache: Map
<keyof T
, number
>
Use this to cache the the column index needed, this should speed things up
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:78
_groupByFields
• Protected
_groupByFields: readonly keyof T
[]
Group By fields
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:67
_limit
• Protected
Optional
_limit: number
The number of records to limit the result by
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:57
_selectFields
• Protected
Optional
_selectFields: readonly keyof T
[]
The field to sort by
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:72
_sortFields
• Protected
Optional
_sortFields: readonly keyof T
[] | readonly string
[]
The field to sort by
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:52
columns
• columns: readonly Column
<any
, keyof T
>[]
The list of columns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:36
fields
• fields: readonly keyof T
[]
An array of the column names
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:41
metadata
• Readonly
metadata: Record
<string
, any
>
Metadata about the Frame
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:46
name
• Optional
name: string
The name of the Frame
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:31
Accessors
config
• get
config(): DataTypeConfig
Generate the DataType config from the columns.
Returns
DataTypeConfig
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:110
id
• get
id(): string
Returns
string
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:114
size
• get
size(): number
Get the number of records in the AggregationFrame
Returns
number
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:103
Methods
assign
▸ assign<R
>(columns
): AggregationFrame
<T
& R
>
Assign new columns, if given a column already exists, the column will replace the existing one.
Type parameters
Name | Type |
---|---|
R | extends Record <string , unknown > = Record <string , any > |
Parameters
Name | Type |
---|---|
columns | readonly Column <any , string >[] |
Returns
AggregationFrame
<T
& R
>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:477
avg
▸ avg(field
): AggregationFrame
<T
>
Calculate the average value in a column
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works numeric data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:155
▸ avg<A
>(field
, as
): AggregationFrame
<WithAlias
<T
, A
, number
>>
Type parameters
Name | Type |
---|---|
A | extends string |
Parameters
Name | Type |
---|---|
field | keyof T |
as | A |
Returns
AggregationFrame
<WithAlias
<T
, A
, number
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:156
count
▸ count(field
): AggregationFrame
<T
>
Count all of the values in a column
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:253
▸ count<A
>(field
, as
): AggregationFrame
<WithAlias
<T
, A
, number
>>
Type parameters
Name | Type |
---|---|
A | extends string |
Parameters
Name | Type |
---|---|
field | keyof T |
as | A |
Returns
AggregationFrame
<WithAlias
<T
, A
, number
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:254
daily
▸ daily(field
): AggregationFrame
<T
>
Group the data in daily buckets
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works Date data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:293
execute
▸ execute(): Promise
<AggregationFrame
<T
>>
Execute the aggregations and flatten the grouped data. Assigns the new columns to this.
Returns
Promise
<AggregationFrame
<T
>>
Todo
move the limit and sort logic to here
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:550
getColumn
▸ getColumn<P
>(field
): undefined
| Column
<T
[P
], P
>
Get a column by name
Type parameters
Name | Type | ||
---|---|---|---|
P | extends string \ | number \ | symbol |
Parameters
Name | Type |
---|---|
field | P |
Returns
undefined
| Column
<T
[P
], P
>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:386
getColumnAt
▸ getColumnAt<P
>(index
): undefined
| Column
<T
[P
], P
>
Get a column by index
Type parameters
Name | Type | ||
---|---|---|---|
P | extends string \ | number \ | symbol |
Parameters
Name | Type |
---|---|
index | number |
Returns
undefined
| Column
<T
[P
], P
>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:416
getColumnOrThrow
▸ getColumnOrThrow<P
>(field
): Column
<T
[P
], P
>
Get a column by name or throw if not found
Type parameters
Name | Type | ||
---|---|---|---|
P | extends string \ | number \ | symbol |
Parameters
Name | Type |
---|---|
field | P |
Returns
Column
<T
[P
], P
>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:403
groupBy
▸ groupBy(...fieldArg
): AggregationFrame
<T
>
GroupBy fields
Parameters
Name | Type |
---|---|
...fieldArg | FieldArg <keyof T >[] |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:121
hourly
▸ hourly(field
): AggregationFrame
<T
>
Group the data in hourly buckets
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works Date data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:275
limit
▸ limit(num
): AggregationFrame
<T
>
Limit the number of results being returned
Parameters
Name | Type |
---|---|
num | number |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:370
max
▸ max(field
): AggregationFrame
<T
>
Find the maximum value in a column
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works numeric data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:230
▸ max<A
>(field
, as
): AggregationFrame
<WithAlias
<T
, A
, number
>>
Type parameters
Name | Type |
---|---|
A | extends string |
Parameters
Name | Type |
---|---|
field | keyof T |
as | A |
Returns
AggregationFrame
<WithAlias
<T
, A
, number
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:231
mergeBy
▸ mergeBy(...fieldArg
): AggregationFrame
<T
>
MergeBy fields
Parameters
Name | Type |
---|---|
...fieldArg | FieldArg <keyof T >[] |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:135
min
▸ min(field
): AggregationFrame
<T
>
Find the minimum value in a column
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works numeric data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:205
▸ min<A
>(field
, as
): AggregationFrame
<WithAlias
<T
, A
, number
>>
Type parameters
Name | Type |
---|---|
A | extends string |
Parameters
Name | Type |
---|---|
field | keyof T |
as | A |
Returns
AggregationFrame
<WithAlias
<T
, A
, number
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:206
monthly
▸ monthly(field
): AggregationFrame
<T
>
Group the data in monthly buckets
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works Date data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:311
orderBy
▸ orderBy(...fieldArgs
): AggregationFrame
<T
>
Order the rows by fields, format of is field:asc
or field:desc
.
Defaults to asc
if none specified
Parameters
Name | Type |
---|---|
...fieldArgs | FieldArg <string >[] |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:344
▸ orderBy(...fieldArgs
): AggregationFrame
<T
>
Parameters
Name | Type |
---|---|
...fieldArgs | FieldArg <keyof T >[] |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:345
rename
▸ rename<K
, R
>(name
, renameTo
): AggregationFrame
<Omit
<T
, K
> & Record
<R
, T
[K
]>>
Rename an existing column
Type parameters
Name | Type | ||
---|---|---|---|
K | extends string \ | number \ | symbol |
R | extends string |
Parameters
Name | Type |
---|---|
name | K |
renameTo | R |
Returns
AggregationFrame
<Omit
<T
, K
> & Record
<R
, T
[K
]>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:423
reset
▸ reset(): AggregationFrame
<T
>
Reset the Aggregations
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:577
run
▸ run(): Promise
<DataFrame
<T
>>
Run aggregations and flatten the grouped data into a DataFrame
Returns
Promise
<DataFrame
<T
>>
the new columns
Defined in
select
▸ select<K
>(...fieldArg
): AggregationFrame
<Pick
<T
, K
>>
After the aggregations run, return only these selected fields
Type parameters
Name | Type | ||
---|---|---|---|
K | extends string \ | number \ | symbol |
Parameters
Name | Type |
---|---|
...fieldArg | FieldArg <K >[] |
Returns
AggregationFrame
<Pick
<T
, K
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:378
sort
▸ sort(...fieldArgs
): AggregationFrame
<T
>
Sort the records by a field, an alias of orderBy.
Parameters
Name | Type |
---|---|
...fieldArgs | FieldArg <string >[] |
Returns
See
orderBy
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:361
▸ sort(...fieldArgs
): AggregationFrame
<T
>
Parameters
Name | Type |
---|---|
...fieldArgs | FieldArg <keyof T >[] |
Returns
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:362
sum
▸ sum(field
): AggregationFrame
<T
>
Add all of the values in a column together
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works numeric data types
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:180
▸ sum<A
>(field
, as
): AggregationFrame
<WithAlias
<T
, A
, number
>>
Type parameters
Name | Type |
---|---|
A | extends string |
Parameters
Name | Type |
---|---|
field | keyof T |
as | A |
Returns
AggregationFrame
<WithAlias
<T
, A
, number
>>
Defined in
data-mate/src/aggregation-frame/AggregationFrame.ts:181
yearly
▸ yearly(field
): AggregationFrame
<T
>
Group the data in yearly buckets
Parameters
Name | Type | Description |
---|---|---|
field | keyof T | the name of the column to run the aggregation on |
Returns
Note
only works Date data types