TD_QQNorm Function Example | Teradata Vantage - TD_QQNorm Example - Teradata® Database

Database Analytic Functions

Product
Teradata® Database
Release Number
17.10
Published
July 2021
Language
English (United States)
Last Update
2021-07-28
dita:mapPath
Teradata_Vantage™___Advanced_SQL_Engine_Analytic_Functions.withLogo_upload_July2021/wnd1589838592459.ditamap
dita:ditavalPath
Teradata_Vantage™___Advanced_SQL_Engine_Analytic_Functions.withLogo_upload_July2021/ayr1485454803741.ditaval
dita:id
B035-1206
lifecycle
previous
Product Category
Teradata Vantage™

Input

Every complete example in this document is available in a zip file that you can download. The zip file includes a SQL script file that creates the input tables for the examples. If you are reading this document on https://docs.teradata.com/, you can download the zip file from the attachment in the left sidebar.

passenger survived pclass  name                                 sex    age    sibsp   parch    ticket       fare   	cabin       embarked 
 --------- -------- ------ ------------------------------------  ------  ----   -----   -----    --------     ------- 	----------- -------- 
        97        0      1 Goldschmidt; Mr. George B              male     71     0      0        PC 17754    34.6542	A5          	C       
       488        0      1 Kent; Mr. Edward Austin                male     58     0      0        11771       29.7	B37        	C       
       505        1      1 Maioni; Miss. Roberta                  female   16     0      0        110152      86.5 	B79             S       
       631        1      1 Barkworth; Mr. Algernon Henry Wilson   male     80     0      0        27042       30 	A23             S       
       873        0      1 Carlsson; Mr. Frans Olof               male     33     0      0        695         5 	B51 B53 B55     S   

From input_table, create RankTable with this statement:

CREATE TABLE RankTable AS (
SELECT age,
fare,
CAST (ROW_NUMBER() OVER (ORDER BY age ASC NULLS LAST) AS BIGINT)
AS rank_age,
CAST (ROW_NUMBER() OVER (ORDER BY fare ASC NULLS LAST) AS BIGINT)
AS rank_fare
FROM input_table AS dt
) WITH DATA;
age fare      rank_age rank_fare 
 --- --------- -------- --------- 
  16 86.5        1         5
  33 5       	 2         1
  58 29.7        3         2
  71 34.6542     4         4
  80 30      	 5         3

SQL Call

SELECT * FROM TD_QQNorm (
  ON RankTable AS InputTable
  USING
  TargetColumns ('[0:1]')
  RankColumns ('[2:3]')
) AS dt;

Output

age       age_theoretical_quantiles 	fare      	fare_theoretical_quantiles 
 --------- ------------------------- 	--------- 	-------------------------- 
 16         -1.17986882170049		86.5        	  1.17986882170049
 33         -0.496788749686441		5      		 -1.17986882170049
 58         -0.000000101006675468085	29.7      	 -0.496788749686441
 71         0.496788749686441		34.6542           0.496788749686441
 80         1.17986882170049		30      	 -0.000000101006675468085