REQUEST COMPLIMENTARY SQLS*PLUS LICENCE
Oracle PL/SQL Analytical Functions
Oracle Analytical functions take as an argument an SQL table, which represents a logical intermediate result of SQL-operator processing, where a reference to such a function is used, and return as their result usually also SQL-table.
Function | Description |
CORR | returns the correlation coefficient of multiple pairs of numbers. |
COVAR_POP | brings back the covariance of multiple pairs of numbers. |
COVAR_SAMP | returns selective covariance to a set of pairs of numbers. |
CUME_DIST | returns the cumulative distribution of values in the value group. The function CUME_DIST returns a value that > 0 and <= 1. |
DENSE_RANK | returns the rank of a string in an ordered group of strings. It is very similar to the RANK function. However, the RANK function may cause inconsistent ranking if the values under test are the same. Therefore, the DENSE_RANK function will always result in a sequential ranking of rows. |
FIRST_VALUE | returns the first value in an ordered set of values from the analytical window. It is similar to FIRST_VALUE and NTH_VALUE. |
LAG | an analytic function that allows you to query more than one row in a table, while not having an attached table. This returns values from the previous row in the table. To return a value from the next row, try the LEAD function. |
LAST_VALUE | returns the last value in an ordered set of values from the analytical window. It is similar to FIRST_VALUE and NTH_VALUE. |
LEAD | is an analytical function that allows you to query more than one row in a table, while not having a table to join. Returns values from the next row in the table. To return a value from the previous row, try the LAG function. |
LISTAGG | integrates measure_column values for each group based on order_by_clause. |
NTH_VALUE | returns the n-th value in an ordered set of values from the analytical window. It is similar to FIRST_VALUE and LAST_VALUE except that NTH_VALUE allows you to find a certain position in the analytical window, e.g. 2nd, 3rd or 4th value. |
RANK | returns the value rank in the value group. This is very similar to the DENSE_RANK function. However, the RANK function may not return a consecutive rank if the values under test are the same. Whereas, DENSE_RANK will always result in a consecutive ranking. The RANK function can be used in two ways – as an aggregate function or as an analytical function. |
STDDEV | returns the standard deviation of the number list. The STDDEV function can be used in two ways – as an aggregate function or as an analytical function. |
VAR_POP | returns the dispersion of a set of numbers. |
VAR_SAMP | returns the selective dispersion of the number set. |
VARIANCE | returns the dispersion of the number set. |
Objectives of introducing analytical functions in Oracle
The technical purpose of the introduction of analytical functions is to give a concise formulation and increase the speed of execution of “analytical queries” to the database, i.e. queries that have meaning to identify internal relations and dependencies in the data. More precisely, the use of analytical functions can provide the following benefits to conventional SQL-operators:
- Simple and concise wording. Many analytical queries to the database by traditional means are difficult to formulate, and therefore difficult to comprehend and poorly debugged.
- Reducing the network load. What could previously be formulated only by a series of queries is reduced to a single query. Only the request is sent through the network and the final result is obtained.
- Transfer of calculations on a server. With use of analytical functions it is not necessary to organise calculations on the client; they are completely spent on a server which resources can be more suitable for fast processing of large volumes of the data.
- Better efficiency in processing requests. Analytical functions have computation algorithms, which are inextricably linked with special plans of query processing, optimized for faster results.
The strategic goal of introducing analytical functions into Oracle is to provide a basic tool for building “data warehouse” (DW), “analytical” (business intelligence systems, BI) or OLAP-systems ICs. Under representations of developers, a set of such base means besides analytical functions form also other Oracle means, such as
- ROLLUP, CUBE and related structures in GROUP BY offers
- materialized views
Classification of analytical function types in Oracle
According to the classification from Oracle documentation, analytical functions can be of the following types:
- (a) Rank functions
- (b) statistical functions for the floating range
- (c) share-counting functions
- (d) statistical functions LAG/LEAD with lagged/leading argument
- (e) statistical functions (linear regression, etc.).
Main technical features
Place to specify analytical functions in SQL offer
Analytical functions take the column of the intermediate result of the SQL proposal calculation as an argument and return the same column. Therefore, only ORDER BY and SELECT phrases can be used in the SQL sentence to complete processing of the logical intermediate result.
Comparison with conventional aggregation functions
Many analytical functions act like ordinary scalar aggregation functions SUM, MAX and others applied to string groups formed with GROUP BY. However, conventional aggregation functions reduce the level of detail, while analytical functions do not.
Analytical Functions in oracle explained with real examples
MORE NEWS
PreambleNoSql is not a replacement for SQL databases but is a valid alternative for many situations where standard SQL is not the best approach for...
PreambleMongoDB Conditional operators specify a condition to which the value of the document field shall correspond.Comparison Query Operators $eq...
5 Database management trends impacting database administrationIn the realm of database management systems, moreover half (52%) of your competitors feel...
The data type is defined as the type of data that any column or variable can store in MS SQL Server. What is the data type? When you create any table or...
PreambleMS SQL Server is a client-server architecture. MS SQL Server process starts with the client application sending a query.SQL Server accepts,...
First the basics: what is the master/slave?One database server (“master”) responds and can do anything. A lot of other database servers store copies of all...
PreambleAtom Hopper (based on Apache Abdera) for those who may not know is an open-source project sponsored by Rackspace. Today we will figure out how to...
PreambleMongoDB recently introduced its new aggregation structure. This structure provides a simpler solution for calculating aggregated values rather...
FlexibilityOne of the most advertised features of MongoDB is its flexibility. Flexibility, however, is a double-edged sword. More flexibility means more...
PreambleSQLShell is a cross-platform command-line tool for SQL, similar to psql for PostgreSQL or MySQL command-line tool for MySQL.Why use it?If you...
PreambleWriting an application on top of the framework on top of the driver on top of the database is a bit like a game on the phone: you say “insert...
PreambleOracle Coherence is a distributed cache that is functionally comparable with Memcached. In addition to the basic function of the API cache, it...
PreambleIBM pureXML, a proprietary XML database built on a relational mechanism (designed for puns) that offers both relational ( SQL / XML ) and...
What is PostgreSQL array? In PostgreSQL we can define a column as an array of valid data types. The data type can be built-in, custom or enumerated....
PreambleIf you are a Linux sysadmin or developer, there comes a time when you need to manage an Oracle database that can work in your environment.In this...
PreambleStarting with Microsoft SQL Server 2008, by default, the group of local administrators is no longer added to SQL Server administrators during the...