To perform in-depth analysis, BigObject's Advanced Data Analytics offers methods to search pattern by invoking corresponding functions.
The general syntax for such FIND statement is following:

FIND [quantifier] function() attribute IN hint_attribute [BY aggregate(attribute)] FROM table_name

In the above statement, the specific function is called out to identify the attribute with hint attribute as the key factor (or differentiator). There are some functions that are already built-in within BigObject's solution. The user can leverage those functions in data query. Below is the list of available built-in functions:

Built-in Functions

Function Syntax Example Description of the Function based on the Example
AMinusB FIND AMinusB("Male","Female") Product.brand IN Customer.gender by sum(qty) FROM sales To discover sales difference by gender (Male - Female) for each brand of product
dcount FIND dcount() Product.brand IN Customer.state FROM sales{returnType:INT32} Get distinct count of number of states which sell each brand (distinct count set to integer to avoid precision loss)
eval FIND eval('_ret=arg[2]/arg[1]', qty, total_price) FROM sales Note: must use '_ret = equation' in the first attribute of eval() Show and compute the unit price. The first attribute in eval() enclosed by single quote is the function with variables based on subsequent attributes within eval()
pareto FIND pareto(80,20) Product.brand IN Customer.state BY sum(qty) FROM sales Looking for brands whose 80% of total quantity coming from first 20% of states sales
significant FIND significant() Product.brand IN Customer.gender BY sum(total_price) FROM sales To discover whether gender is a significant factor for each brand based on revenue of each brand (the higher value, the more significant)
significant_id FIND significant_id() Product.brand IN Customer.gender BY sum(total_price) FROM sales {stringResult:true} Similar to significant() but the result will show the highest hint attribute (i.e. 'Male' or 'Female' in this case)
summary FIND summary("max") Product.brand IN Customer.state BY sum(qty) FROM sales To discover the maximum sales quantity among the available states for each brand. Note: the agrument within summary could be std(standard deviation), max, min, count, mean, sum
quantile FIND quantile(0.25) Product.brand IN Customer.state BY sum(qty) FROM sales To get the quantile value (argument: 0~1)

In our ABC company case, if the staff would like to find out which product is relatively influential by gender factor. He can use significant function as following:

FIND TOP 10 significant() Product.name IN Customer.gender BY sum(qty) FROM sales

He may get a result similar to below table:

If ABC company staff would like to know if each product brand was available in each state, he may use dcount function to find out.

FIND dcount() Product.brand IN Customer.state FROM sales {returnType:INT32}

He may get a result that looks like following:

Auxiliary Clause:

For each function, the user can specify the return value in the auxiliary clause.
For example, the user can specify the threshold and result_filter attribute in the significant function.

Examples:

FIND top 10 significant() Product.id IN Customer.language BY SUM(qty) FROM sales {threshold:0.7}

or

FIND significant_id() Product.brand IN Customer.state BY SUM(qty) FROM sales {stringResult:true & threshold: Texas}

The user can also specify the return value type as integer to prevent precision loss for dcount function.

Example:

FIND dcount() IN Customer.state FROM sales {returnType:INT32}

FILTER BY SAMPLE: Filter By for Select

The user can specify a sample value of the FIND statement within auxiliary clause.

Example:

FIND AMinusB("Male","Female") Product.brand IN Customer.gender by sum(qty) FROM sales {filter by: sample 10}