Datamart / PriceAnalyzer Functions
The following api. functions are available:
Once you obtain the DatamartContext, you can call its functions - see DatamartContext.
Groovy SQL Query API
If the standard query API lacks particular functions, expressions, and/or join modes, you can configure, in the Groovy logic, an SQL SELECT statement to be run against Analytics data. This way, the full power of SQL can be leveraged.
def ctx = api.getDatamartContext()
def dm = ctx.getDatamart("TransactionsDM")
def ds = ctx.getDataSource("ForecastDS")
def t1 = ctx.newQuery(dm)
t1.select("ProductID", "product")
t1.select("SUM(InvoicePrice)", "revenue")
t1.select("SUM(Quantity)", "volume")
def t2 = ctx.newQuery(ds, false)
t2.select("ProductID", "product")
t2.select("Revenue, "revenue")
t2.select("Volume", "volume")
def sql = """
SELECT T1.product, T1.revenue AS ActualRevenue, T2.revenue AS ForecastRevenue
T1.volume AS ActualVolume, T2.volume AS ForecastVolume
FROM T1 LEFT OUTER JOIN T2 USING (product)
"""
return ctx.executeSqlQuery(sql, t1, t2)?.toResultMatrix() // first source gets default alias T1, 2nd gets T2 etc.
For the executeSqlQuery
function, the supported SQL syntax depends on the database server of Analytics where typically PostgreSQL 10+ or Greenplum 5.12+ are used.
Found an issue in documentation? Write to us.