Dear visitor, despite the COVID-19 outbreak, our team continues operating at full speed.

Also, here is the form where you can apply for a special discount and we will contact you with possible options. Stay safe and continue achieving your business goals.

Fill the form
Get Free Trial
Get Free Trial
  1. API reference
    1. Introduction
    2. Flexmonster()
  2. Objects
    1. All objects
    2. Report Object
    3. Data Source Object
    4. Mapping Object
    5. Slice Object
    6. Options Object
    7. Filtering
      1. Filter Object
      2. Number Query Object
      3. String Query Object
      4. Date Query Object
      5. Time Query Object
      6. Value Query Object
    8. Format Object
    9. Conditional Format Object
    10. Cell Data Object
    11. Chart Data Object
    12. Toolbar Object
  3. Methods
    1. All methods
    2. addCalculatedMeasure
    3. addCondition
    4. alert
    5. clear
    6. clearFilter
    7. clearXMLACache
    8. closeFieldsList
    9. collapseAllData
    10. collapseData
    11. connectTo
    12. customizeAPIRequest
    13. customizeCell
    14. customizeContextMenu
    15. dispose
    16. expandAllData
    17. expandData
    18. exportTo
    19. getAllConditions
    20. getAllHierarchies
    21. getAllMeasures
    22. getCell
    23. getColumns
    24. getCondition
    25. getFilter
    26. getFlatSort
    27. getFormat
    28. getMeasures
    29. getMembers
    30. getOptions
    31. getReport
    32. getReportFilters
    33. getRows
    34. getSelectedCell
    35. getSort
    36. getXMLACatalogs
    37. getXMLACubes
    38. getXMLADataSources
    39. getXMLAProviderName
    40. load
    41. off
    42. on
    43. open
    44. openCalculatedValueEditor
    45. openFieldsList
    46. openFilter
    47. print
    48. refresh
    49. removeAllCalculatedMeasures
    50. removeAllConditions
    51. removeCalculatedMeasure
    52. removeCondition
    53. removeSelection
    54. runQuery
    55. save
    56. setFilter
    57. setFlatSort
    58. setFormat
    59. setOptions
    60. setReport
    61. setSort
    62. showCharts
    63. showGrid
    64. showGridAndCharts
    65. sortingMethod
    66. sortValues
    67. updateData
  4. Events
    1. All events
    2. afterchartdraw
    3. aftergriddraw
    4. beforegriddraw
    5. beforetoolbarcreated
    6. cellclick
    7. celldoubleclick
    8. chartclick
    9. datachanged
    10. dataerror
    11. datafilecancelled
    12. dataloaded
    13. drillthroughclose
    14. drillthroughopen
    15. exportcomplete
    16. exportstart
    17. fieldslistclose
    18. fieldslistopen
    19. filterclose
    20. filteropen
    21. loadingdata
    22. loadinglocalization
    23. loadingolapstructure
    24. loadingreportfile
    25. localizationerror
    26. localizationloaded
    27. olapstructureerror
    28. olapstructureloaded
    29. openingreportfile
    30. printcomplete
    31. printstart
    32. querycomplete
    33. queryerror
    34. ready
    35. reportchange
    36. reportcomplete
    37. reportfilecancelled
    38. reportfileerror
    39. runningquery
    40. update
  5. Custom data source API
    1. All requests
    2. /handshake request
    3. /fields request
    4. /members request
    5. /select request for pivot table
    6. /select request for flat table
    7. /select request for drill-through view
    8. Field Object
  6. MongoDB Connector API
    1. All methods
    2. getSchema
    3. getMembers
    4. getSelectResult
Table of contents

/select request for pivot table

[starting from version: 2.8]

A request for data.

Request

{
    "type": "select"
    "index": string,
    "query": {
        "aggs": {
            "values"[]: {
                "field": FieldObject,
                "func": string
            },
            "by": {
                "rows": FieldObject[],
                "cols": FieldObject[]
            }
        },
        "filter"[]: {
            "field": FieldObject,
            "include": string[] | number[],
            "exclude": string[] | number[],
            "query": {
                (condition): string | number | string[] | number[]
            },
            "value": {
                "field": FieldObject,
                "func": string
            }
        }
    },
    "page": number
}

Request has the following parameters:

  • query – Object. A query object.
    • aggs – Object. Query aggregations.
      The part of query that specifies what data should be aggregated and how.
      • values – Array. Values to aggregate.
        Fields that have at least one supported aggregation defined in the schema can be selected for the query as values.
        • field – Field object.
        • func – String. Aggregation function. Supported values include: "sum", "count", "distinctcount", "average", "median", "product", "min", "max", "percent", "percentofcolumn", "percentofrow", "index", "stdevp", "stdevs", "none". For each field the list of supported aggregations is defined in the response to the fields request.
      • by – Object. Fields to aggregate by.
        • rows – Array of Field objects. Fields in rows.
        • cols – Array of Field objects. Fields in columns.
    • filter (optional) – Array. Query filters.
      The part of a query that specifies what filters should be applied.
      Each field with a filter is represented by a separate object.
      • field – Field object. The field to apply filter to.
      • include – Array of strings|Array of numbers. Field members to include. For string field type it is string[]. For number and date field types it is number[].
      • exclude – Array of strings|Array of numbers. Field members to exclude. For string field type it is string[]. For number and date field types it is number[].
      • query – Object. Conditional filter.
        • (condition) – String|Number|Array of strings| Array of numbers. Value for the condition, where condition to apply is (condition).
      • value – Object. Value to apply a conditional filter to.
        • field – Field object.
        • func – String. Aggregation function. Supported values include: "sum", "count", "distinctcount", "average", "median", "product", "min", "max", "percent", "percentofcolumn", "percentofrow", "index", "stdevp", "stdevs", "none". For each field the list of supported aggregations is defined in the response to the fields request.
    • page – Number. A page number. It can be used to load data by parts. If a response contains the pageTotal parameter, additional requests will be performed to load the remaining pages. Starts from 0.

Response

{
    "aggs"[]: {
        "values": {
            (uniqueName): {
                (func): number
            }
        },
        "keys": {
            (uniqueName): string
        }
    },
    "page": number,
    "pageTotal": number
}

Response has the following parameters:

  • aggs – Array. Aggregated data.
    • values – Object. Numeric values that are calculated for a specific tuple.
      • (uniqueName) – Object. Field’s unique name.
        • (func) – Number. Result of the calculation, where (func) if an aggregation function.
    • keys (optional) – Object. Field’s keys that describe a specific tuple. In case it is not defined, values are treated as totals.
      • (uniqueName) – String. Field’s member, where (uniqueName) is a field’s unique name.
  • page (optional) – Number. Current page number. Starts from 0.
  • pageTotal (optional) – Number. Total number of pages. It can be used to load members by parts.

Examples

  1. Example with one value
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }]
            }
        },
        "page": 0
    }
    Response:
    {
        "aggs": [{
            "values": {
                "price": {
                    "sum": 123
                }
            }
        }]
    }
  2. Example with two values
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "aggs": {
                "values": [{
                    "func": "sum", 
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }, {
                    "func": "sum", 
                    "field": {
                        "uniqueName": "quantity",
                        "type": "number"
                    }
                }]
            }
        },
        "page": 0
    }
    Response:
    {
        "aggs": [{
            "values": {
                "price": {
                    "sum": 123
                },
                "quantity": {
                    "sum": 5
                }
            }
        }]
    }
  3. Example with a field in rows
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "aggs": {
                "values": [{
                    "func": "sum", 
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }]
                }
            }
        },
        "page": 0
    }
    Response:
    {
        "aggs": [{
            "values": {
                "price": {
                    "sum": 123
                }
            }
        }, {
            "keys": {
                "city": "Toronto"
            },
            "values": {
                "price": {
                    "sum": 100
                }
            }
        }, {
            "keys": {
                "city": "New York"
            },
            "values": {
                "price": {
                    "sum": 23
                }
            }
        }]
    }
  4. Example with fields in rows and columns
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "aggs": {
                "values": [{
                    "func": "sum", 
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }],
                    "cols": [{
                        "uniqueName": "color",
                        "type": "string"
                    }]
                }
            }
        },
        "page": 0
    }
    Response:
    {
        "aggs": [{
            "values": {
                "price": {
                    "sum": 48
                }
            }
        }, {
            "keys": {
                "city": "New York"
            },
            "values": {
                "price": {
                    "sum": 20
                }
            }
        }, {
            "keys": {
                "city": "Toronto"
            },
            "values": {
                "price": {
                    "sum": 28
                }
            }
        }, {
            "keys": {
                "color": "blue"
            },
            "values": {
                "price": {
                    "sum": 38
                }
            }
        }, {
            "keys": {
                "color": "red"
            },
            "values": {
                "price": {
                    "sum": 10
                }
            }
        }, {
            "keys": {
                "city": "New York",
                "color": "blue"
            },
            "values": {
                "price": {
                    "sum": 20
                }
            }
        }, {
            "keys": {
                "city": "Toronto",
                "color": "blue"
            },
            "values": {
                "price": {
                    "sum": 18
                }
            }
        }, {
            "keys": {
                "city": "Toronto",
                "color": "red"
            },
            "values": {
                "price": {
                    "sum": 10
                }
            }
        }]
    }
  5. Example with exclude members filter
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "filter": [{
                "field": {
                    "uniqueName": "city",
                    "type": "string"
                },
                "exclude": ["New York", "Montreal"]
            }],
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }]
                }
            }
        }
    }
    Response:
    Format is the same as above.
  6. Example with include/exclude members filter on several fields
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "filter": [{
                    "field": {
                        "uniqueName": "color",
                        "type": "string"
                    },
                    "include": ["blue"]
                },
                {
                    "field": {
                        "uniqueName": "city",
                        "type": "string"
                    },
                    "exclude": ["New York", "Montreal"]
                }
            ],
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }]
                }
            }
        }
    }
    Response:
    Format is the same as above.
  7. Example with a conditional filter on labels for string field
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "filter": [{
                "field": {
                    "uniqueName": "city",
                    "type": "string"
                },
                "query": {
                    "begin": "toro"
                }
            }],
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }]
                }
            }
        }
    }
    Response:
    Format is the same as above.
  8. Example with a conditional filter on labels for number field
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "filter": [{
                "field": {
                    "uniqueName": "quantity",
                    "type": "number"
                },
                "query": {
                    "greater": 2
                }
            }],
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "quantity",
                        "type": "number"
                    }]
                }
            }
        }
    }
    Response:
    Format is the same as above.
  9. Example with a conditional filter on dates for date field
    Request:
    {
    "index": "data-set-123",
    "type": "select",
    "query": {
    "filter": [{
    "field": {
    "field": "order_date",
    "type": "date"
    },
    "query": {
    between: [1564610400000, 1564696799999]
    }
    }],
    "aggs": {
    "values": [{
    "func": "sum",
    "field": {
    "field": "price",
    "type": "number"
    }
    }],
    "by": {
    "rows": [{
    "field": "order_date",
    "type": "date"
    }]
    }
    }
    }
    }
    Response:
    Format is the same as above.
  10.  Example with a conditional filter on values
    Request:
    {
        "index": "data-set-123",
        "type": "select",
        "query": {
            "filter": [{
                "field": {
                    "uniqueName": "city",
                    "type": "string"
                },
                "query": {
                    "top": 3
                },
                "value": {
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }
            }],
            "aggs": {
                "values": [{
                    "func": "sum",
                    "field": {
                        "uniqueName": "price",
                        "type": "number"
                    }
                }],
                "by": {
                    "rows": [{
                        "uniqueName": "city",
                        "type": "string"
                    }]
                }
            }
        }
    }
    Response:
    Format is the same as above.

See also

/handshake request
/fields request
/members request
/select request for flat table
/select request for drill-through view
Field Object