TopSum (PQL)

Returns a derived list of the TOP elements from the specified list that sum to a given value.

  • Returned Output: List
  • Library: PQL \ Semantic \ List
  • Version: 2018.00.000
  • Compatibility: Pyramid Query Language (PQL) data sources


TopSum( <List> , <Integer> , OPTIONAL <Data Point> )

* Click on the function's arguments above for more details on the input values.

  • List parameter should be a list or set of elements from an existing hierarchy in the model.
  • The integer value specifies the number that the top elements must sum to.
  • The data point or tuple is optional, and describes the values used to determine the order for the list. If not supplied, the default measure or the query context will determine this value instead.
  • For details on how to employ and use this function see the semantic calculation overview.

This function is like the MDX TopSum function; it calculates the bottom list of elements from a specified a list.

The TopSum function works by ordering the list from highest to lowest, using the optional numeric data point (value) or default values. It then captures as many elements as needed to achieve the target value provided, by summing the numeric data points for each element in the list.


This example with take all the members in the Manufacturer attribute (listing), rank them from high to low based on August 2010 expenses, and then return as many elements as needed to achieve at least 170,000 (in Aug 2010 expenses) from the top:

TopSum( {AllMembers([manufacturers].[manufacturer])}, 170000, ([measures].[data Expenses], [data].[dateKey].[aug 2010]) )

Using the grid below, this will return Poomah and Slicenger: