Page tree

Release 8.7.1


Contents:

   

Contents:


Generates the sum of rows in each group that meet a specific condition.

NOTE: When added to a transform, this function is applied to the sample in the data grid. If you change your sample or run the job, the computed values for this function are updated. Transforms that change the number of rows in subsequent recipe steps do not affect the values computed for this step.

To perform a simple summing of rows without conditionals, use the SUM function. See SUM Function.

Wrangle vs. SQL: This function is part of Wrangle, a proprietary data transformation language. Wrangle is not SQL. For more information, see Wrangle Language.

Basic Usage

sumif(timeoutSecs, errors >= 1)

Output: Returns the sum of the timeoutSecs column when the errors value is greater than or equal to 1.

Syntax and Arguments

sumif(col_ref, test_expression) [group:group_col_ref] [limit:limit_count]


ArgumentRequired?Data TypeDescription
col_refYstringReference to the column you wish to evaluate.
test_expressionYstringExpression that is evaluated. Must resolve to true or false

For more information on syntax standards, see Language Documentation Syntax Notes.

For more information on the group and limit parameters, see Pivot Transform.

col_ref

Name of the column whose values you wish to use in the calculation. Column must be a numeric (Integer or Decimal) type.

Usage Notes:

Required?Data TypeExample Value
YesString that corresponds to the name of the columnmyValues

test_expression

This parameter contains the expression to evaluate. This expression must resolve to a Boolean (true or false) value.

Usage Notes:

Required?Data TypeExample Value
YesString expression that evaluates to true or false(LastName == 'Mouse' && FirstName == 'Mickey')


Examples


Tip: For additional examples, see Common Tasks.

Example - Summarize Voter Registrations

This example illustrates how you can use the following conditional calculation functions to analyze polling data:
  • SUMIF - Sum of a set of values by group that meet a specified condition. See SUMIF Function.
  • COUNTDISTINCTIF - Sum of a set of values by group that meet a specified condition. See COUNTDISTINCTIF Function.

Source:

Here is some example polling data across 16 precincts in 8 cities across 4 counties, where registrations have been invalidated at the polling station, preventing voters from voting. Precincts where this issue has occurred previously have been added to a watch list (precinctWatchList).

totalReginvalidRegprecinctWatchListprecinctIdcityIdcountyId
73124y111
74329y211
8740 321
9830 421
62229 532
6930 632
77537y742
102549y842
78713 953
3420 1053
34239y1163
38728y1263
58259 1374
2440 1474
9406y1584
9014y1684

 

Transformation:

First, you want to sum up the invalid registrations (invalidReg) for precincts that are already on the watchlist (precinctWatchList = y). These sums are grouped by city, which can span multiple precincts:

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula SUMIF(invalidReg, precinctWatchList == "y")
Parameter: Group rows by cityId
Parameter: New column name 'invalidRegbyCityId'

The invalidRegbyCityId column contains invalid registrations across the entire city.

Now, at the county level, you want to identify the number of precincts that were on the watch list and were part of a city-wide registration problem.

In the following step, the number of cities in each count are counted where invalid registrations within a city is greater than 60.

  • This step creates a pivot aggregation.

Transformation Name Pivot columns
Parameter: Row labels countyId
Parameter: Values COUNTDISTINCTIF(precinctId, invalidRegbyCityId > 60)
Parameter: Max number of columns to create 1

Results:

countyIdcountdistinctif_precinctId
10
22
32
40

The voting officials in counties 2 and 3 should investigate their precinct registration issues.

 

This page has no comments.