feat(sql): implement mode(Ø/T/L/K/S) group by functions #5623
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #5580
mode()
returns the most frequent appearance of a column value, for each group. Withoutmode()
, you must first perform acount()
operation. Then you must sort the result set and take the value corresponding to the highest count. This requires complex subqueries.This has a variety of uses. For example, returning the most frequently traded symbol by a trader, or identifying the most frequent error state for a sensor.
todo:
mode(BOOLEAN)
GroupByLongLongHashMap
mode(LONG)
run in parallel using the new off-heap mapmode(VARCHAR)
run in parallel using the new off-heap mapmode(STRING)
run in parallel using the new off-heap mapmode(SYMBOL)
run in parallel using the new off-heap mapBenchmark
For
GroupByLongHashSet
,GroupByLongLongHashMap
,LongLongHashMap
: (not isolated)For
GroupbyUtf8SequenceLongHashMap
andUtf8SequenceLongHashMap
: (not isolated)For
GroupbyCharSequenceLongHashMap
andCharSequenceLongHashMap
: (not isolated)