TeraData函数小结

TeraData函数小结

/*系统函数*/ 
time; --当前时间
current_date; --当前日期 
current_timestamp --当前时间戳 
type(字段);--字段类型 
coalesce(a,b,c,d) --取第一个非null值
distinct --去除重复值 
top 10 --前几位 
sample 10 --采样函数,随机从结果集中取10个条记录 
decode(字段,1,1,2,2,...) --匹配函数 


/*数据类型*/
char,varchar,integer,decimal,date,time,timestamp


/*转换函数*/
to_char(data,'yyyymmdd') --转换成字符串 
to_date('20191031','yyyymmdd') --转换成日期
cast('20191031' as date format 'YYYYMMDD') --转换成日期 
cast('10' as decimal(3,1)) --转换成数值 注释:

/*集合操作*/
union --返回去重之后的结果集 
union all --并集,不去重
intersect --交集,去重 
except--第一个结果集中排除第二个结果集,去重


/*字符串函数*/
--增
'A'||'B' --拼接字符串 
lpad('a',10,'#') --把“#”不断添加到字符串左侧,直到字符串满足10位长度。结果:#########a
rpad('a',10,'#') --结果:a#########
--删
substr('abcd',1,2) --截取字符串,从第一个开始截取2位。第三个参数省去时,表示截取的字符串末尾。
substring('abcde' from 1 for 2) --同上
trim(both '#' from '##ABCD##' ) --去除字符串两侧的“#”号
trim(' ABCD ' ) --去除字符串两侧的空格,不包括制表符。结果: ‘ABCD’
ltrim(' abcd ') --去除左侧的空格。结果: ‘abcd ’
rtrim(' abcd ') --去除右侧的空格。结果: ‘ abcd’
--改
oreplace('abcd','a','$') --替换函数。将a替换成$ 结果:‘$bcd’
reverse('abcd') --翻转字符串。结果:dcba
lower('A') --字符串变小写
upper('a') --字符串变大写 
initcat('abc abc') --首字母大写。结果:‘Abc Abc’
--查
char('aa') --字符串有几个字符,一个汉字记作两个字符,返回int类型。
length('你好') --字符长度,返回double类型,一个汉字看作两个字符。
chr('97') --返回码值对应的字符,chr(9)=制表符 chr(10)=回车 chr(13)=换行 
ascii('a') --返回字符的ascii码
index('abcd','b') --字符串出现的位置,从1开始 
instr('abcdabcd','b',2,1) --第2个位置开始,第2次出现的位置(包含首位)。 结果: 2 


/*算数函数*/ 
trim( 1234 (format('-(10)9(10)')) --数字补齐10位,返回varchar类型,结果:0000001234 
round(1.234,1) --四舍五入,小数位保留一位有效数字 
3**3 --三的三次方 结果:27 
power(3,2) --三的二次方 结果: 9
sqrt(16) --平方根 结果:4
random(1,10) --随机值,1-10的随机数,返回int类型。
abs(10) --绝对值 
sign(-3) --返回数值符号,结果为 -1、1或0。 返回两位精度的number类型。
102 mod 10 --取模函数 ,结果:2 
exp(2) --指数 
sin(x) --三角函数
cos(x) --三角函数
tan(x) --三角函数


/*聚合函数*/ 
 min --最小 
 max --最大
 count --计数
 sum  --汇总
 avg  --平均值:Teradate中函数忽略null。不同数据库存在差异,根据数据库对null的处理方式来分析。TD中null参与运算结果为null。
 
 
/*排序函数*/ 
rank() over(partition 分组 order by 排序)  --相同数值,排序相同,排序断开 
dense_rank() over(partition .. order by .. ) --相同数值,排序相同,排序连续 
row_number() over(partition 分组 order by 排序)  --相同数值,排序不同,排序连续
qualify row_bmer() .... =1 --取排序为1的记录 


/*OLAP函数*/ 
csum(累加值,排序) --累加函数。可以通过group by来重置累加值。
msum(bal,3,stat_dt) --移动求和。 计算最近(本条记录和上面两条)三天记录的和,按照stat_dt排序。 
mavg(bal,3,stat_dt) --移动平均。 计算最近(本条记录和上面两条)三天记录的平均值,按照stat_dt排序。 
mdiff(bal,1,stat_dt) --移动差分。 计算本条记录的bal和上一条记录的bal差值,按照stat_dt排序。日期使用mdiff时应该先吧日期转换成int类型。
	说明:midff无法直接作用于日期列,可以先算出日期相对于你某一天的int值,再计算这两个int值的差。(A-X)-(B-X) =A-B 
quantile(10,bal asc) --分为函数。将所有的记录归类为10类,根据余额排序。
mlinreg(预测列,宽度,排序列),reg_slope,reg_intercept --线性回归函数



/*OLAP统计函数*/ 
  --标准差:
  --反应数据离散程度,大的标准差,反应了大部分数据和平均值差异较大。
  --标准差是方差的算术平方根。标准差值越接近于零,说明样本数据余越集中分布
  STDDEV_SAMP(VALUE) --标准差 
  STDDEV_POP(VALUE)  --总体标准差:

  --变异函数
  --随机场、空间内的两点之差的方差。
  --反应了空间内点的离散程度
  VAR_SAMP(VALUE) --变异函数:
  VAR_POP(VALUE)  --全体变异函数:
  
  --分布函数 
  --若已知数轴上点的分布函数,则可以知道随机值X落在(负无穷,x] 这个区间的概率。
  SKEW(VAL) --分布歪斜函数:正表示向正向倾斜 ,负表示向负向倾斜 。
  KURTOSIS(VAL)--分布峰态函数 
  
  --协方差函数
  --定义:在概率学和统计学中,两个变量如何相关变化的度量。方差是协方差的一种特殊情况,即两个变量相同。
  --描述两个变量的相关性。如一个男孩的猥琐程度和受女孩欢迎程度,协方差结果为+则表示,越猥琐越受欢迎。0表时两个变量不相干。
  COVAR_POP(V1,V2)  
  
  --相关性函数 
  CORR(V1,V2)
  
  --线性回归函数
  --反应了数据的变化预期值。如:10岁,身高1.5米,12岁,1.7米,预测13岁,1.9米。
  --客户存款随年龄的变化,知识储备岁工作年龄的变化。
  REG_SLOPE(独立,依赖)--回归倾斜函数:测试独立变量在依赖变量上的变化率
  --回归截取函数 
  REG_INTERCEPT(独立,依赖) --是回归线与纵坐标的截取点

我自己整理的,如果读者发现错误,还望指正,欢迎留言讨论。

你可能感兴趣的:(TeraData)