 |
XLeratorDB
FUNCTION LIBRARIES
FINANCIAL
XLeratorDB/Finance Documentation
Rate of Return
| EFV |
Enhanced Future Value |
| ENPV |
Enhanced Net Present Value |
| ENPV_q |
Enhanced Net Present Value |
| EPV |
Enhanced Present Value |
| FV |
Future Value |
| FVGA |
Future Value of a Growing Annuity |
| FVSCHEDULE |
Future Value based on Compound Rates |
| IRR |
Internal Rate of Return |
| IRR_q |
Internal Rate of Return |
| MDIETZ |
Modified Dietz |
| MDIETZ_q |
Modified Dietz |
| MIRR |
Modified Internal Rate of Return |
| MIRR_q |
Modified Internal Rate of Return |
| NOMINAL |
Annual Nominal Interest Rate |
| NPER |
Number of Periods |
| NPERGA |
Number of Periods of a Growing Annuity |
| NPV |
Net Present Value |
| NPV_q |
Net Present Value |
| PMTGA |
Initial Payment of a Growing Annuity |
| PV |
Present Value |
| PVGA |
Present Value of a Growing Annuity |
| RATE |
Interest Rate of an Annuity |
| XFV |
Future Value of a Cashflow |
| XIRR |
Internal Rate of Return with non-periodic Cashflows |
| XIRR_q |
Internal Rate of Return with non-periodic Cashflows |
| XNPV |
Net Present Value for non-periodic Cashflows |
| XNPV_q |
Net Present Value for non-periodic Cashflows |
| XPV |
Discounted Value of a Cashflow between two dates |
Loan and Lease
| CUMIPMT |
Cumulative Interest Paid |
| CUMLIPMT |
Cumulative Interest Payments for a loan |
| CUMLPPMT |
Cumulative Principal Payments for a loan |
| CUMPRINC |
Cumulative Principal Paid |
| EFFECT |
Maturity and Due Dates |
| IPMT |
Interest Payment based on Constant Rate |
| LIPMT |
Interest Payment for a loan |
| LPMT |
Periodic Payment for a loan |
| LPPMT |
Principal Payment for a loan |
| NPD |
Next Payment Date for a loan |
| NPNO |
Next Payment Number for a loan |
| PMT |
Payment of an Annuity |
| PERIODRATE |
Adjust the Nominal Rate for a loan |
| PMTSCHED |
Payment Schedule for a loan |
| PPD |
Previous Payment Date for a loan |
| PPMT |
Principal Payment |
| PPNO |
Previous Payment Number for a loan |
| R78IPMT |
Interest Payment for a loan using Rule of 78 |
| R78PAYOFF |
Payment Amount for a loan using Rule of 78 |
| R78PPMT |
Principal Payment for a loan using Rule of 78 |
| R78REBATE |
Rebate Amount for a loan using Rule of 78 |
| TOTALINT |
Total Interest Amount for a loan |
Depreciation
| DB |
Declining Balance |
| DDB |
Double Declining Balance |
| SLN |
Straight Line Depreciation |
| SYD |
Sum-of-Year's-Digits Depreciation |
| VDB |
Depreciation Using Declining Balance |
XLDB/Finance Release/ Version Information
STATISTICS
XLeratorDB/Statistics Documentation
Descriptive Statistics
Continuous Data - Location
| AVERAGE |
average (arithmetic mean) |
| AVERAGE_q |
average (arithmetic mean) |
| COUNT |
Number of rows in a table that contain numbers |
| COUNT_q |
Number of rows in a table that contain numbers |
| GEOMEAN |
geometric mean for a dataset containing positive numbers |
| GEOMEAN_q |
geometric mean for a dataset containing positive numbers |
| HARMEAN |
harmonic mean of a dataset containing positive numbers |
| HARMEAN_q |
harmonic mean of a dataset containing positive numbers |
| MEDIAN |
calculate the median value in a dataset |
| MEDIAN_q |
calculate the median value in a dataset |
| MODE |
calculate the most common value in a dataset |
| MODE_q |
calculate the most common value in a dataset |
| TRIMMEAN |
calculate the mean of the interior of a dataset |
| TRIMMEAN_q |
calculate the mean of the interior of a dataset |
Continuous Data - Dispersion
| AVEDEV |
average of the absolute deviations |
| AVEDEV_q |
average of the absolute deviations |
| COVAR |
Covariance |
| COVAR_q |
Covariance |
| DEVSQ |
sum of the squares of deviations |
| DEVSQ_q |
sum of the squares of deviations |
| LARGE |
calculate the kth largest value in a dataset |
| LARGE_q |
calculate the kth largest value in a dataset |
| PERCENTILE |
calculate the kth percentile of value in a dataset |
| PERCENTILE_q |
calculate the kth percentile of value in a dataset |
| PERCENTRANK |
calculate rank of a value in a dataset as a percentage of the dataset |
| PERCENTRANK_q |
calculate rank of a value in a dataset as a percentage of the dataset |
| QUARTILE |
calculate the quartile of a dataset |
| QUARTILE_q |
calculate the quartile of a dataset |
| RANK |
calculate the rank of a number in a list of numbers |
| RANK_q |
calculate the rank of a number in a list of numbers |
| SMALL |
calculate the kth smallest value in a dataset |
| SMALL_q |
calculate the kth smallest value in a dataset |
| STDEV |
standard deviation |
| STDEV_q |
standard deviation |
| STDEVP |
standard deviation for an entire population |
| STDEVP_q |
standard deviation for an entire population |
Continuous Data - Shape
| KURT |
calculate the kurtosis of a dataset |
| KURT_q |
calculate the kurtosis of a dataset |
| SKEW |
the degree of asymmetry of a distribution |
| SKEW_q |
the degree of asymmetry of a distribution |
| VAR |
variance |
| VAR_q |
variance |
| VARP |
variance for an entire population |
| VARP_q |
variance for an entire population |
Statistical Inference - Specific Tests
| CHISQ |
Chi-square statistic |
| CHISQ2 |
Chi-square statistic (user-specified expected range) |
| CHISQ_q |
Chi-square statistic |
| CHISQ2_q |
Chi-square statistic (user-specified expected range) |
| CHISQN |
Chi-square statistic on normalized tables |
| CHISQN2 |
Chi-square statistic on normalized tables (user-specified expected range) |
| CHISQN_q |
Chi-square statistic on normalized tables |
| CHISQN2_q |
Chi-square statistic on normalized tables (user-specified expected range) |
| CHITEST |
Pearson chi-square test for independence |
| CHITEST2 |
Pearson chi-square test for independence (user-specified expected range) |
| CHITEST_q |
Pearson chi-square test for independence |
| CHITEST2_q |
Pearson chi-square test for independence (user-specified expected range) |
| CHITESTN |
Pearson chi-square test for independence on normalized tables |
| CHITESTN2 |
Pearson chi-square test for independence on normalized tables (user-specified expected range) |
| CHITESTN_q |
Pearson chi-square test for independence on normalized tables |
| CHITESTN2_q |
Pearson chi-square test for independence on normalized tables (user-specified expected range) |
| FTEST |
determine whether two samples have different variances |
| FTEST_q |
determine whether two samples have different variances |
| TTEST |
calculate the probability associated with Student’s t-test |
| TTEST_q |
calculate the probability associated with Student’s t-test |
| ZTEST |
calculate the one-tailed probability of a Z-test |
| ZTEST_q |
calculate the one-tailed probability of a Z-test |
Correlation
| CORREL |
correlation coefficient |
| CORREL_q |
correlation coefficient |
| PEARSON |
Pearson correlation coefficient |
| PEARSON_q |
Pearson correlation coefficient |
| PROB |
calculate probability that values in a range are between two limits |
| PROB_q |
calculate probability that values in a range are between two limits |
| RSQ |
Pearson product moment correlation coefficient |
| RSQ_q |
Pearson product moment correlation coefficient |
Linear Regression
| FORECAST |
calculate a future value |
| FORECAST_q |
calculate a future value |
| GROWTH |
predicted exponential growth |
| GROWTH_q |
predicted exponential growth |
| INTERCEPT |
calculate the point at which a line will intersect the y-axis |
| INTERCEPT_q |
calculate the point at which a line will intersect the y-axis |
| SLOPE |
slope of linear regression |
| SLOPE_q |
slope of linear regression |
| TREND |
calculate the values along a linear trend |
| TREND_q |
calculate the values along a linear trend |
Data Collection - Sampling
Probability Functions
Distributions
| BETADIST |
Beta cumulative probability density |
| BETAINV |
Inverse of the beta cumulative probability density |
| BETAPDF |
Beta distribution (pdf) |
| BINOMDIST |
Binomial distribution |
| BINOMINV |
Inverse (quantile) of the binomial distribution |
| CAUCHY |
Cauchy distribution (cdf or pdf) |
| CAUCHYINV |
Inverse (quantile) of the Cauchy distribution (cdf) |
| CHI2NC |
Non-Central Chi-square distribution |
| CHI2NCINV |
Inverse of the Non-Central Chi-square distribution |
| CHIDIST |
Chi-square distribution |
| CHIINV |
Inverse of the Chi-square distribution |
| CONFIDENCE |
Confidence interval |
| CRITBINOM |
Criterion value for the cumulative binomial distribution |
| EXPDIST |
Exponential distribution (cdf or pdf) |
| EXPONDIST |
Exponential distribution - Excel version |
| EXPINV |
Inverse (quantile) of the exponential distribution |
| FDIST |
F probability distribution |
| FINV |
Inverse of the F probability distribution |
| FPDF |
F distribution (pdf) |
| FISHER |
Fisher transformation |
| FISHERINV |
Inverse of the Fisher transformation |
| GAMMADIST |
Gamma distribution |
| GAMMAINV |
Inverse of the cumulative gamma distribution |
| GAMMAP |
Regularized gamma function P(a,x) |
| GAMMAQ |
Regularized gamma function Q(a,x) |
| GEOMETRIC |
Geometric distribution (cdf or pdf) |
| GEOMETRICP |
Cumulative distribution function of the Geometric distribution |
| GEOMETRICINV |
Inverse (quantile) of the Geometric distribution |
| HYPGEOMDIST |
Hypergeometric distribution |
| HYPGEOMDISTP |
Hypergeometric distribution P-tail |
| HYPGEOMDISTPINV |
Inverse of the pdf of the Hypergeometric distribution |
| HYPGEOMDISTQ |
Hypergeometric distribution Q-tail |
| INVGAMMAP |
Inverse of the incomplete gamma function P(a,x) |
| LAPLACE |
Laplace distribution (cdf or pdf) |
| LAPLACEINV |
Inverse (quantile) of the Laplace distribution |
| LOGINV |
Inverse of the lognormal cumulative distribution |
| LOGISTIC |
Logistic distribution (cdf or pdf) |
| LOGISTICINV |
Inverse (quantile) of the logistic distribution |
| LOGNORMDIST |
Lognormal cumulative distribution |
| LOGNORMPDF |
Lognormal distribution (pdf) |
| NCFCDF |
Non-central F distribution (cdf) |
| NCFINV |
Inverse (quantile) of the Non-central F distribution |
| NCFPDF |
Non-central F distribution (pdf) |
| NCHISQPDF |
Non-central chi square distribution (pdf) |
| NCTCDF |
Non-central T distribution (cdf) |
| NCTINV |
Inverse (quantile) of the Non-central T distribution |
| NCTPDF |
Non-central T distribution (pdf) |
| NEGBINOMDIST |
Negative binomial distribution |
| NEGBINOMDISTP |
Negative binomial distribution (pdf) |
| NEGBINOMINV |
Inverse (quantile) of the Negative binomial distribution |
| NORMAL |
Probability density function for the standard normal distribution |
| NORMDIST |
Normal distribution |
| NORMINV |
Inverse of the normal cumulative distribution |
| NORMSDIST |
Standard normal cumulative distribution |
| NORMSINV |
Inverse of the standard normal cumulative distribution |
| POISSON |
Poisson distribution |
| POISSONINV |
Inverse (quantile) of the Poisson distribution |
| STANDARDIZE |
Normalized value from a distribution |
| STUDENTST |
Student's t-distribution |
| TDIST |
Probability for the Student’s t-distribution |
| TINV |
Value of the Student's t-distribution |
| UNIFORM |
Uniform distribution (cdf or pdf) |
| UNIFORMINV |
Inverse (quantile) of the Uniform distribution |
| WEIBULL |
Weibull distribution |
| WEIBULLINV |
Inverse (quantile) of the Weibull distribution |
XLDB/Stats Release/Version Information
ENGINEERING
XLeratorDB Engineering Documentation
Engineering
| BESSELI |
Calculate the Bessel function of the second kind I±v(z) |
| BESSELJ |
Calculate the Bessel function of the first kind J±v(z) |
| BESSELK |
Calculate the Bessel function of the first kind Kv(z) |
| BESSELY |
Calculate the Bessel function of the first kind Yv(z) |
| ERF |
Calculate the error function |
| ERFC |
Calculate the complementary error function |
| Modulo |
Modulus as calculated in Excel |
| DELTA |
Test whether two values are equal |
| GESTEP |
Test greater than or equal to a threshold |
Base Conversions
| EBIN2DEC |
Convert a positive binary number to decimal |
| BIN2DEC |
Convert a binary number to a decimal |
| BIN2HEX |
Convert a binary number to a hexadecimal |
| BIN2OCT |
Convert a binary number to an octal |
| DEC2BIN |
Convert a decimal number to binary |
| DEC2HEX |
Convert a decimal number to hexadecimal |
| DEC2OCT |
Convert a decimal number to octal |
| HEX2DEC |
Convert a hexadecimal number to decimal |
| HEX2OCT |
Convert a hexadecimal number to octal |
| HEX2BIN |
Convert a hexadecimal number to binary |
| OCT2DEC |
Convert an octal number to decimal |
| OCT2HEX |
Convert an octal number to hexadecimal |
| OCT2BIN |
Convert an octal number to binary |
Complex Numbers
| COMPLEX |
Convert to a complex number |
| IMREAL |
Return the real coefficient of a complex number |
| IMAGINARY |
Return the imaginary coefficient of a complex number |
| IMABS |
Calculate the absolute value of a complex number |
| IMARGUMENT |
Return theta as radians |
| IMADD |
Return the sum of 2 complex numbers |
| IMSUB |
Return the difference between 2 complex numbers |
| IMMULT |
Return the product of 2 complex numbers |
| IMDIV |
Return the quotient of 2 complex numbers |
| IMCOS |
Return the cosine of a complex number |
| IMSIN |
Return the sine of a complex number |
| IMPOWER |
Return a complex number raised to a power |
| IMSQRT |
Return the square root of a complex number |
| IMLN |
Return the natural logarithm of a complex number |
| IMEXP |
Return the exponential of a complex number |
| IMLOG10 |
Return the common (base 10) logarithm of a complex number |
| IMLOG2 |
Return the base-2 logarithm of a complex number |
| IMCONJUGATE |
Return the complex conjugate of a complex number |
| IMSUM |
Return the sum of a set of complex numbers |
| IMSUM_q |
Return the sum of a set of complex numbers |
| IMPRODUCT |
Return the product of a set of complex numbers |
| IMPRODUCT_q |
<Return the product of a set of complex numbers |
XLDB/Engineering Release/Version Information
UNIT CONVERSIONS
XLeratorDB Unit Conversion Documentation
Area
| CONVERTAREA |
Area unit conversions |
| ACRES |
Convert area to Acres |
| HECTARES |
Convert area to Hectares |
| SQINCHES |
Convert area to Square Inches |
| SQFEET |
Convert area to Square Feet |
| SQYARDS |
Convert area to Square Yards |
| SQMILES |
Convert area to Square Miles |
| SQMETERS |
Convert area to Square Meters |
Length
| CONVERTLENGTH |
Length Unit Conversions |
| INCHES |
Convert length to Inches |
| FEET |
Convert length to Feet |
| YARDS |
Convert length to Yards |
| METERS |
Convert length to Meters |
| MILES |
Convert length to Miles |
| NMILES |
Convert length to Nautical Miles |
| FATHOMS |
Convert length to Fathoms |
| FURLONGS |
Convert length to Furlongs |
| PICA |
Convert length to Picas |
| POINTS |
Convert length to Points |
Speed
| CONVERTSPEED |
Speed Unit Conversions |
| INSEC |
Convert speed to Inches per Second |
| FTSEC |
Convert speed to Feet per Second |
| FTMIN |
Convert speed to Feet per Minute |
| FTHR |
Convert speed to Feet per Hour |
| MSEC |
Convert speed to Meters per Second |
| MMIN |
Convert speed to Meters per Minute |
| MHR |
Convert speed to Meters per Hour |
| KMHR |
Convert speed to Kilometers per Hour |
| MISEC |
Convert speed to Miles per Second |
| MIMIN |
Convert speed to Miles per Minute |
| MIHR |
Convert speed to Miles per Hour |
| KNOTS |
Convert speed to Knots |
Temperature
| CONVERTTEMP |
Temperature Unit Conversions |
| CELSIUS |
Convert temperature to Celsius |
| FAHRENHEIT |
Convert temperature to Fahrenheit |
| KELVIN |
Convert temperature to Kelvin |
| RANKINE |
Convert temperature to Rankine |
Volume
| CONVERT VOLUME |
Volume Unit Conversions |
| CUINCHES |
Convert volume to Cubic Inches |
| CUFEET |
Convert volume to Cubic Feet |
| CUYARDS |
Convert volume to Cubic Yards |
| CUMETERS |
Convert volume to Cubic Meters |
| CUMILES |
Convert volume to Cubic Miles |
| FLDRAMS |
Convert volume to Fluid Drams |
| FLOUNCES |
Convert volume to Fluid Ounces |
| TEASPOONS |
Convert volume to Teaspoons |
| TABLESPOONS |
Convert volume to Tablespoons |
| CUPS |
Convert volume to Cups |
| PINTS |
Convert volume to Pints |
| QUARTS |
Convert volume to Quarts |
| GALLONS |
Convert volume to Gallons |
| LITERS |
Convert volume to Liters |
| IMPOUNCES |
Convert volume to Imperial Ounces |
| IMPPINTS |
Convert volume to Imperial Pints |
| IMPQUARTS |
Convert volume to Imperial Quarts |
| IMPGALLONS |
Convert volume to Imperial Gallons |
| IMPGILLS |
Convert volume to Imperial Gills |
| BARRELS |
Convert volume to Barrels |
| BBLS |
Convert volume to US Beer Barrels |
| BUSHELS |
Convert volume to Bushels |
| GILLS |
Convert volume to Gills |
| PECKS |
Convert volume to Pecks |
| DRYPINTS |
Convert volume to Dry Pints |
| DRYQUARTS |
Convert volume to Dry Quarts |
| STERES |
Convert volume to Steres |
Weight
| CONVERTWEIGHT |
Weight Unit Conversions |
| OUNCES |
Convert weight to Ounces |
| GRAINS |
Convert weight to Grains |
| DRAMS |
Convert weight to Drams |
| POUNDS |
Convert weight to Pounds |
| STONES |
Convert weight to Stones |
| CWT |
Convert weight to Hundred Weight |
| TON |
Convert weight to Tons |
| DWT |
Convert weight to Pennyweight |
| TROY |
Convert weight to Troy Ounces |
| TPOUNDS |
Convert weight to Troy Pounds |
| GRAMS |
Convert weight to Grams |
| TONNES |
Convert weight to Tonnes |
XLDB/Convert Release/Version Information
STRINGS
XLeratorDB Strings Documentation
Formatting
| CLEAN |
Clean non-printable characters text |
| CONCAT |
Concatenate two text strings with an optional joiner |
| CRLF |
Returns the ascii carriage return-line feed |
| DEC2FRAC |
Returns a text representation of a decimal converted to a fraction |
| DOLLAR |
Converts a number to text with a currency format |
| FIXED |
Formats a number as text with a fixed number of decimals |
| FORMATDATE |
Formats a date according to Microsoft DOTNET formatting standards |
| FORMATNUM |
Formats a number according to Microsoft DOTNET formatting standards |
| FRAC2DEC |
Inverse of DEC2FRAC, converts a text representation of a fraction to a decimal number |
| INDENT |
Indents a text string (incl. multi-line) to a specified number of levels with a specified indentation character |
| JOINSTR |
Returns the concatenation of columnar from a table or view |
| JOINSTR_q |
Returns the concatenation of columnar from a query |
| PADLEFT |
Pads text to a specified width using a padding to the left of the original text |
| PADRIGHT |
Pads text to a specified width using a padding to the right of the original text |
| PARSE |
Returns requested instance of an item delimited by one or more separators |
| PCT2FRAC |
Converts a given percentage value to a text representation of a fraction. |
| PROPER |
Capitalizes the first letter of each word in a text string |
| QUOTED |
Returns text surrounded with a double quote character |
| QUOTES |
Returns text surrounded with a single quote character |
| SPLIT |
Splits a string into one or more rows by a single or multi-character delimeter |
| STRIP |
Strips all punctuation from the beginning and end of a text string |
| SUBSTITUTE |
Replaces specified instances of text in a text string |
| TEXT |
Formats a number according to excel format styles |
| TRIM |
Trims leading and trailing spaces from a text string |
| VALUE |
Converts text to a number (float) |
Inspection
| CONTAINSSTR |
Returns whether a text string contains another text string |
| COUNTSTRING |
Returns the number of occurrences of one string within another |
| ENDSWITH |
Returns whether a text string ends with another text string |
| EXACT |
Returns whether two strings are equal |
| FIND |
Finds one text value within another |
| INSTR |
Returns the first character position of one text string within another |
| INSTRREV |
Returns the character position of the last instance of one text string within another |
| ISALPHA |
Returns whether a text string contains only alphabetic characters |
| ISNUMERIC |
Returns whether a text string represents a number |
| NUMWORDS |
Returns the number of items delimited by one or more separators |
| STARTSWITH |
Returns whether a text string starts with another text string |
Calendars
| NETWORKDAYS |
Returns the number of working days (non weekend or holiday) between two dates |
| NETWORKDAYS_q |
Returns the number of working days (non weekend or holiday) between two dates |
| WORKDAY |
Calculates a work day (non weekend or holiday) from a start date and offset |
| WORKDAY_q |
Calculates a work day (non weekend or holiday) from a start date and offset |
Logic
| IIFSTR |
Returns one of two strings depending on a boolean condition |
XLDB/Strings Release/Version Information
|
XLeratorDB is a suite of database function libraries that enable Microsoft SQL Server to perform a wide range of additional (non-native) business intelligence and ad hoc analytics. The libraries, which are embedded and run centrally on the database, include more than 450 individual functions similar to those found in Microsoft Excel spreadsheets. The individual functions are grouped and sold as six separate libraries based on usage: finance, statistics, math, engineering, unit conversions and strings. WestClinTech, the company that developed XLeratorDB, claims it is "the first commercial function package add-in for Microsoft SQL Server."[1]
[edit] Company history
WestClinTech (LLC), founded by software industry veterans Charles Flock and Joe Stampf in 2008, is located in Irvington, New York, USA. Flock was a co-founder of The Frustum Group, developer of the OPICS enterprise banking and trading platform, which was acquired by London-based Misys, PLC in 1996.[2] Stampf joined Frustum in 1994 and with Flock remained active with the company after acquisition, helping to develop successive generations of OPICS now employed by over 150 leading financial institutions worldwide.[3]
Following a full year of research, development and testing, WestClinTech introduced and recorded its first commercial sale of XLeratorDB in April 2009.[4][5] In September 2009, XLeratorDB became available to all Federal agencies through NASA's Strategic Enterprise-Wide Procurement (SEWP-IV) program, a government-wide acquisition contract.[6]
[edit] Technology
XLeratorDB uses Microsoft SQL CLR(Common Language Runtime) technology.[7] SQL CLR allows managed code to be hosted by, and run in, the Microsoft SQL Server environment. SQL CLR relies on the creation, deployment and registration of .NET Framework assemblies that are physically stored in managed code dynamic-link libraries (DLL). The assemblies may contain .NET namespaces, classes, functions, and properties. Because managed code compiles to native code prior to execution, functions using SQL CLR can achieve significant performance increases versus the equivalent functions written in T-SQL in some scenarios.[8]
XLeratorDB requires Microsoft SQL Server 2005 or SQL Server 2005 Express editions, or later (compatibility mode 90 or higher).[9] The product installs with PERMISSION_SET=SAFE. SAFE mode, the most restrictive permission set, is accessible by all users. Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, the internet, environment variables, or the registry.[10]
[edit] Functions
In computer science, a function is a portion of code within a larger program which performs a specific task and is relatively independent of the remaining code. As used in database and spreadsheet applications these functions generally represent mathematical formulas widely used across a variety of fields. While this code may be user-generated, it is also embedded as a pre-written sub-routine in applications. These functions are typically identified by common nomenclature which corresponds to their underlying operations: e.g. IRR identifies the function which calculates Internal Rate of Return on a series of periodic cash flows.
[edit] Function uses
As sub-routines functions can be integrated and used in a variety of ways, and in a wide variety of larger, more complicated applications. Within large enterprise applications they may, for example, play an important role in defining business rules or risk management parameters, while remaining virtually undetected by end users. Within database management systems and spreadsheets, however, these kinds of functions also represent discrete sets of tools; they can be accessed directly and utilized on a stand-alone basis, or in more complex, user-defined configurations. In this context, functions can be used for business intelligence and ad hoc analysis of data in fields such as finance, statistics, engineering, math, etc.
[edit] Function types
XLeratorDB uses three kinds of functions to perform analytic operations: scalar, aggregate, and a hybrid form which WestClinTech calls Range Queries. Scalar functions take a single value, perform an operation and return a single value.[11] An example of this type of function is LOG, which returns the logarithm of a number to a specified base.[12] Aggregate functions operate on a series of values but return a single, summarizing value. An example of this type of function is AVG, which returns the average of values in a specified group.[13]
In XLeratorDB there are some functions which have characteristics of aggregate functions (operating on multiple series of values) but cannot be processed in SQL CLR using single column inputs, such as AVG does. For example, irregular internal rate of return (XIRR), a financial function, operates on a collection of cash flow values from one column, but must also apply variable period lengths from another column and an initial iterative assumption from a third, in order to return a single, summarizing value. WestClinTech documentation notes that Range Queries specify the data to be included in the result set of the function independently of the WHERE clause associated with the T-SQL statement, by incorporating a SELECT statement into the function as a string argument; the function then traps that SELECT statement, executes it internally and processes the result.[14]
Some XLeratorDB functions that employ Range Queries are: NPV, XNPV, IRR, XIRR, MIRR, MULTINOMIAL, and SERIESSUM. Within the application these functions are identified by a "_q" naming convention: e.g. NPV_q, IRR_q, etc.[15]
[edit] Analytic functions
[edit] SQL Server functions
Microsoft SQL Server is the #3 selling database management system (DBMS), behind Oracle and IBM.[16] (While versions of SQL Server have been on the market since 1987 [17], XLeratorDB is compatible with only the 2005 edition and later.) Like all major DBMS, SQL Server performs a variety of data mining operations by returning or arraying data in different views (also known as drill-down). In addition, SQL Server uses Transact-SQL (T-SQL) [18] to execute four major classes of pre-defined functions in native mode.[19] Functions operating on the DBMS offer several advantages over client layer applications like Excel: they utilize the most up-to-date data available; they can process far larger quantities of data; and, the data is not subject to exporting and transcription errors [20].
SQL Server 2008 includes a total of 58 functions that perform relatively basic aggregation (12), math (23) and string manipulation (23) operations useful for analytics; it includes no native functions that perform more complex operations directly related to finance, statistics or engineering.[21]
[edit] Excel functions
Microsoft Excel, a component of Microsoft Office suite, is one of the most widely used spreadsheet applications on the market today.[22] In addition to its inherent utility as a stand-alone desktop application, Excel overlaps and complements the functionality of DBMS in several ways: storing and arraying data in rows and columns; performing certain basic tasks such as pivot table[23] and aggregating values; and facilitating sharing, importing and exporting of database data. Excel’s chief limitation relative to a true database is capacity; Excel 2003 is limited to some 65k rows and 256 columns; Excel 2007 extends this capacity to roughly 1million rows and 16k columns.[24] By comparison, SQL Server is able to manage over 500k terabytes of memory.[25]
Excel offers, however, an extensive library of specialized pre-written functions which are useful for performing ad hoc analysis on database data. Excel 2007 includes over 300 of these pre-defined functions, although customized functions can also be created by users, or imported from third party developers as add-ons. Excel functions are grouped by type:[26]
Excel Functions
| Financial |
Statistical |
Engineering |
Math and trig |
| Information |
Date and time |
Text and data |
Logical |
Add-ins and
automation |
Lookup and
reference |
Cube |
Database and
list management |
[edit] Excel business intelligence functions
Operating on the client computing layer Excel plays an important role as a business intelligence tool [27] because it:
-
- performs a wide array of complex analytic functions not native to most DBMS software
- offers far greater ad hoc reporting and analytic flexibility than most enterprise software
- provides a medium for sharing and collaborating because of its ubiquity throughout the enterprise
Microsoft reinforces this positioning with Business Intelligence documentation that positions Excel in a clearly pivotal role.[28]
[edit] XLeratorDB vs. Excel functions
While operating within the database environment, XLeratorDB functions utilize the same naming conventions and input formats, and in most cases, return the same calculation results as Excel functions.[29] XLeratorDB, coupled with SQL Server's native capabilities, compares to Excel's function sets as follows:
| Excel 2007 |
XLeratorDB + SQL Server |
| Function Type |
Total |
Total |
Match |
New |
Native |
| Financial |
52 |
93 |
50 |
43 |
0 |
| Statistics |
83 |
171 |
65 |
94 |
12 |
| Math |
59 |
76 |
34 |
19 |
23 |
| Engineering |
39 |
44 |
38 |
6 |
0 |
| Conversions* |
49 |
78 |
0 |
78 |
0 |
| Strings |
26 |
63 |
11 |
29 |
23 |
| *Microsoft includes these functions within Engineering using variable input configurations |
[edit] References
- ^ http://WestClinTech.com/Home/tabid/36/Default.aspx
- ^ http://www.fundinguniverse.com/company-histories/Misys-PLC-Company-History.html
- ^ http://www.misys.com/tcm/markets/otc_derivative_trading_solutions-opics_plus.html
- ^ http://www.sqlmag.com/Articles/ArticleID/102126/102126.html?Ad=1
- ^ http://WestClinTech.com/CaseStudyNewlandCommunities/tabid/178/Default.aspx
- ^ http://www.sewp.nasa.gov/index.shtml
- ^ http://WestClinTech.com/wct_local/Documentation/AboutXLeratorDB/tabid/148/topic/Technology/Default.aspx
- ^ This needs a reference
- ^ http://WestClinTech.com/Support/FAQ/tabid/143/Default.aspx#PL_A1_RequiredToInstall
- ^ See SQL Server DBMS documentation at: http://msdn.microsoft.com/en-us/library/ms130214.aspx
- ^ Also see: http://msdn.microsoft.com/en-us/library/ms174318.aspx
- ^ Excel definition at: http://office.microsoft.com/en-us/excel/HP100624401033.aspx
- ^ SQL Server definition at: http://msdn.microsoft.com/en-us/library/ms177677.aspx
- ^ http://WestClinTech.com/wct_local/Documentation/AboutXLeratorDB/tabid/148/topic/Range%20Queries/Default.aspx
- ^ See XLeratorDB Function Packages information box, above
- ^ IDC COMPETITIVE ANALYSIS: Worldwide Relational Database Management Systems 2007 Vendor Shares, Carl W. Olofson, June 2008, IDC #212840, Volume: 1, Tab: Markets
- ^ http://e-articles.info/e/a/title/A-Brief-History-of-Microsoft-SQL-Server/
- ^ http://msdn.microsoft.com/en-us/library/ms166026%28SQL.90%29.aspx
- ^ http://msdn.microsoft.com/en-us/library/ms174318.aspx
- ^ IBM refers to this as "no-paste analytics. See Data Warehousing documentation.
- ^ http://msdn.microsoft.com/en-us/library/ms174318%28v=SQL.100%29.aspx
- ^ Various sources suggest Office/Excel market share exceeds 90%, but this needs a specific source/citation
- ^ http://searchsqlserver.techtarget.com/sDefinition/0,,sid87_gci875976,00.html
- ^ See Excel documentation
- ^ http://msdn.microsoft.com/en-us/library/ms143432.aspx
- ^ http://office.microsoft.com/en-us/excel/HA102775241033.aspx
- ^ See general Business Intelligence documentation Microsoft and IBM, for example: http://download.boulder.ibm.com/ibmdl/pub/software/data/sw-library/cognos/pdfs/factsheets/fs_cognos8bi_analysis_for_microsoft_excel.pdf
- ^ http://www.microsoft.com/presspass/newsroom/office/BusinessIntelligenceFS.mspx
- ^ http://www.WestClinTech.com/Blog/tabid/132/EntryID/19/Default.aspx
[edit] External links