Computes the mode (most frequent value) from all row values in a column, according to their grouping. Input column can be of Integer, Decimal, or Datetime type.
- If a row contains a missing or null value, it is not factored into the calculation. If the entire column contains no values, the function returns a null value.
- If there is a tie in which the most occurrences of a value is shared between values, then the lowest value of the evaluated set is returned.
- When used in a
pivottransform, the function is computed for each instance of the value specified in the
groupparameter. See Pivot Transform.
For a non-conditional version of this function, see MODE Function.
For a version of this function computed over a rolling window of rows, see ROLLINGMODE Function.
D s lang vs sql
|D lang syntax|
modeif(count_visits, health_status == 'sick')
Output: Returns the mode of the values in the
count_visits column as long as
health_status is set to
|D lang syntax|
modeif(function_col_ref, test_expression) [group:group_col_ref] [limit:limit_count]
|function_col_ref||Y||string||Name of column to which to apply the function|
Expression that is evaluated. Must resolve to
For more information on the
limit parameters, see Pivot Transform.
|D s lang notes|
Name of the column the values of which you want to calculate the function. Column must contain Integer, Decimal, or Datetime values.
NOTE: If the input is in Datetime type, the output is in unixtime format. You can wrap these outputs in the DATEFORMAT function to generate the results in the appropriate Datetime format. See DATEFORMAT Function.
- Literal values are not supported as inputs.
- Multiple columns and wildcards are not supported.
|Required?||Data Type||Example Value|
|Yes||String (column reference)|
This parameter contains the expression to evaluate. This expression must resolve to a Boolean (
|Yes||String expression that evaluates to |
Example - MODEIF function
The following data contains a list of weekly orders for 2017 across two regions (
r02). You are interested in calculating the most common order count for the second half of the year, by region.
NOTE: For simplicity, only the first few rows are displayed.
To assist, you can first calculate the week number for each row:
D trans RawWrangle true p03Value 'weekNumber' Type step WrangleText derive type: single value: weeknum(Date) as: 'weekNumber' p01Name Formula type p01Value Single row formula p02Name Formula p02Value weeknum(Date) p03Name New column name SearchTerm New formula
Then, you can use the following aggregation to determine the most common order value for each region during the second half of the year:
D trans RawWrangle true p03Value 50 Type step WrangleText pivot group: Region value: modeif(OrderCount, weekNumber > 26) limit: 50 p01Name Row labels p01Value Region p02Name Values p02Value modeif(OrderCount, weekNumber > 26) p03Name Max number of columns to create SearchTerm Pivot columns
|r02||100|D s also label aggregate