MicroStrategy Function Name | SQL Pattern |
ABS | ABS(#0) |
COS | COS(#0) |
EXP | EXP(#0) |
LN | LN(#0) |
LOG10 | LOG(#0) |
POWER | POWER(#0, #1) |
ROUND | ROUND(#0,0) |
ROUND2 | ROUND(#0, #1) |
SIN | SIN(#0) |
SQRT | SQRT(#0) |
MOD | ((#0) MOD (#1)) |
STDEV | STDDEV_SAMP(#0#< #*#>) |
VAR | VAR_SAMP(#0#< #*#>) |
STDEVP | STDDEV_POP(#0#< #*#>) |
VARP | VAR_POP(#0#< #*#>) |
SKEW | SKEW(#0#< #*#>) |
KURTOSIS | KURTOSIS(#0#< #*#>) |
MicroStrategy Function Name | SQL Pattern |
CURRENTDATE | CURRENT_DATE |
DAYOFMONTH | EXTRACT(DAY FROM #0) |
DAYOFWEEK | TO_NUMBER(TO_CHAR(#0, 'D')) |
DAYOFYEAR | TO_NUMBER(TO_CHAR(#0, 'DDD')) |
WEEK | TO_NUMBER(TO_CHAR(#0, 'WW')) |
MONTH | EXTRACT(MONTH FROM #0) |
QUARTER | TO_NUMBER(TO_CHAR(#0, 'Q')) |
YEAR | EXTRACT(YEAR FROM #0) |
CURRENTDATETIME | LOCALTIMESTAMP |
CURRENTTIME | LOCALTIMESTAMP |
HOUR | TO_NUMBER(TO_CHAR(#0, 'HH24')) |
MINUTE | TO_NUMBER(TO_CHAR(#0, 'MI') |
SECOND | TO_NUMBER(TO_CHAR(#0, 'SS')) |
DATE | TRUNC(CAST(#0 AS DATE)) |
DAYSBETWEEN | CAST(#1 AS DATE) - CAST(#0 AS DATE) |
MONTHSBETWEEN | FLOOR(MONTHS_BETWEEN(#1, #0)) |
ADDDAYS | (#0 + #1 * INTERVAL '1' DAY) |
ADDMONTHS | ADD_MONTHS(#0, Cast(#1 as Integer)) |
MONTHSTARTDATE | TRUNC(ADD_MONTHS((LAST_DAY(#0) + 1), -1)) |
MONTHENDDATE | TRUNC(LAST_DAY(#0)) |
YEARSTARTDATE | ADD_MONTHS(TRUNC(#0) - EXTRACT(DAY FROM #0) + 1, 1 - EXTRACT(MONTH FROM #0)) |
YEARENDDATE | ADD_MONTHS(TRUNC(#0) - EXTRACT(DAY FROM #0), 13 - EXTRACT(MONTH FROM #0)) |
MicroStrategy Function Name | Column Name | |
RUNNINGAVG | avg(#0) over(#1) | |
RUNNINGMAX | max(#0) over(#1) | |
RUNNINGMIN | min(#0) over(#1) | |
RUNNINGCOUNT | count(#0) over(#1) | |
RUNNINGSUM | sum(#0) over(#1) | |
MOVINGAVG | avg(#0) over(#1) | |
MOVINGMAX | max(#0) over(#1) | |
MOVINGMIN | min(#0) over(#1) | |
MOVINGSUM | sum(#0) over(#1) | |
Rank | #0#,#<partition by#>#<#, #*#>#|rank over(#1#2#<,#*#> order by #0) | |
COVARIANCE | COVAR_POP(#0, #1) | |
CORRELATION | CORR(#0, #1) | |
SLOPE | REGR_SLOPE(#0, #1) | |
INTERCEPT | REGR_INTERCEPT(#0, #1) | |
BANDING | Case when (#0 between #1 and #2) then | |
BANDINGC | Case when (#1=#2 and #0=#1) then #3 when | |
IF | (Case when #0 then #1 else #2 end) | |
RUNNINGSTDEV | stddev_samp(#0) over(#1) | |
RUNNINGSTDEVP | stddev_pop(#0) over (#1) | |
MOVINGSTDEV | stddev_samp(#0) over(#1) | |
MOVINGSTDEVP | stddev_pop(#0) over(#1) | |
OLAPSUM | sum(#0#< #*#>) over ([#P] [#O] [#W])" OLAPDBPATTERN="P:o|O:o|W:o|D:n|R:n | |
OLAPAVG | avg(#0#< #*#>) over ([#P] [#O] [#W])" OLAPDBPATTERN="P:o|O:o|W:o|D:n|R:y | |
OLAPCOUNT | count(#0#< #*#>) over ([#P] [#O] [#W])" OLAPDBPATTERN="P:o|O:o|W:o|D:n|N:y|R:y | |
OLAPMAX | max(#0#< #*#>) over ([#P] [#O] [#W])" OLAPDBPATTERN="P:o|O:o|W:o|D:n|R:y | |
OLAPMIN | min(#0#< #*#>) over ([#P] [#O] [#W])" OLAPDBPATTERN="P:o|O:o|W:o|D:n|R:y | |
LAG | CASE WHEN count(*) OVER ([#P] [#O] rows between unbounded preceding and current row) <= #1 THEN #2 ELSE sum(#0#< #*#>) OVER ([#P][#O] rows between #1 preceding and #1 preceding) END" OLAPDBPATTERN="P:o|O:r | |
LEAD | CASE WHEN count(*) OVER ([#P] [#O] rows between current row and unbounded following) <= #1 THEN #2 ELSE sum(#0#< #*#>) OVER ([#P] [#O] rows between #1 following and #1 following) END" OLAPDBPATTERN="P:o|O:r | |
OLAPRANK | rank() over ([#P] [#O])" OLAPDBPATTERN="P:o|O:r | |
LAG | lag(#0#<, #*#>) over ([#P][#O])" OLAPDBPATTERN="P:o|O:r | |
LEAD | lead(#0#<, #*#>) over ([#P] [#O])" OLAPDBPATTERN="P:o|O:r | |
OLAPRANK | rank() over ([#P] [#O])" OLAPDBPATTERN="P:o|O:r | |
MEDIAN | MEDIAN(#0) | |
FIRST IN RANGE | first_value(#0) over(#1) | |
LAST IN RANGE | last_value(#0) over(#1) | |

MicroStrategy Function Name | SQL Pattern |
ACOS | ACOS(#0) |
ASIN | ASIN(#0) |
ATAN | ATAN(#0) |
ATAN2 | ATAN2(#0,#1) |
COSH | COSH(#0) |
SINH | SINH(#0) |
TAN | TAN(#0) |
TANH | TANH(#0) |
ACOSH | ACOSH(#0) |
ASINH | ASINH(#0) |
ATANH | ATANH(#0) |
GEOMEAN | EXP(AVG(LN(#0))) |
PRODUCT | (CASE WHEN SUM(CASE WHEN #0=0 THEN 1 ELSE 0 END) > 0 THEN 0 ELSE (POWER(-1,SUM(CASE WHEN #0<0 THEN 1 END)))*EXP(SUM(LN(ABS(CASE WHEN #0<>0 THEN #0 ELSE NULL END)))) END) |
CEILING | CEILING(#0) |
DEGRESS | (POWER(ASIN(1),(-1))*#0*90) |
FLOOR | FLOOR(#0) |
RADIANS | (ASIN(1)*#0/90) |
TRUNC | TRUNC(#0) |
MicroStrategy Function Name | SQL Pattern |
INT | CASE WHEN #0 > 0 THEN TRUNC(#0, 0) ELSE (TRUNC(#0, 0) - 1) END |
INT2 | (CASE WHEN (#0-CAST(#0 as integer)) >= 0 THEN CAST(#0 as integer) ELSE (CAST(#0 as integer) - 1) END) |
LOG | (LN(#0)/LN(#1)) |
QUOTIENT | TRUNC((#0)/(CASE WHEN (#1)=0 THEN NULL ELSE(#1) END), 0) |
MOVINGCOUNT | SUM(#0- #0+1) OVER(#1) |
MOVINGSTDEV | (CASE WHEN SUM(#0 - #0 +1) OVER(#1)=1 THEN 0 ELSE SQRT((SUM(#0*#0) OVER(#1)-((SUM(#0) OVER(#1))/(SUM(#0-OVER(#1)*SUM(#0) OVER(#1))))/(SUM(#0- #0+1) OVER(#1)-1)) END) |
FISHER | (LN((1+#0)/(1- #0))/2) |
INVERSEFISHER | ((EXP(2*#0)-1)/(EXP(2*#0)+1)) |
PEARSON | (((SUM(#0-#0+#1-#1+1)*SUM(#0*#1))-(SUM(#0)*SUM(#1)))/SQRT(((SUM(#0-#1+1)*SUM(#0*#0))-(SUM(#0)*SUM(#0)))*((SUM(#0-#1+1)*SUM(#1*#1))-(SUM(#1)*SUM(#1))))) |
STANDARDIZE | case when (#2 > 0) then (#0 - #1)/(#2) else NULL end |
RSQUARE | REGR_R2(#0,#1) |
STEYX | SQRT((1/(SUM(#1- #1+#0- #0+1)*(SUM(#1- #1+#0- #0+1)-2)))*((SUM(#1- #1+#0- #0+1)*SUM(#0*#0))- (SUM(#0)*SUM(#0))-((((SUM(#1- #0+1)*SUM(#1*#0))-(SUM(#1)*SUM(#0)))*((SUM(#1-#0+1)*SUM(#1*#0))-(SUM(#1)*SUM(#0))))/((SUM(#1-#0+1)*SUM(#1*#1))-(SUM(#1)*SUM(#1)))))) |
GREATEST | GREATEST(#0#<, #*#>) |
LEAST | LEAST(#0#<, #*#>) |