vertica使用

最近在学vertica,找了点vertica有关的只是,记录一下

·  进入 vertica的sql环境:vsql -d dbname -w passwd

·  修改列名: alter table csaprp.tb_rp_ct_olcs_work_list_dispose_mon将statis_date重命名为statis_month;

·  增加列: alter table test.DIM_DETAIL_SVCTYPE add column if_app numeric(10,0);

·  删除表列: alter table test.DIM_DETAIL_SVCTYPE drop column if_app;

·  查找用户: select * from v_catalog.users;

·  修改表为分区表: alter table test.fct_fournet_wlanap_equp_ana_d by day_id;

·  修改表名: alter table test.fct_fournet_wlanap_equp_ana_d_x重命名为fct_fournet_wlanap_equp_ana_d;

·  修改表所属用户: alter table test.fct_fournet_wlanap_equp_ana_d owner to dev_test;

·  查询表: select * from tables;

·  查询注释: select * from comment where object_name ='tb_rp_ct_rena_new_in_man_audit_day';

·产生  随机数: SELECT RANDOM();

·  vertica数据的表中导出数据到数据文件,shell命令:echo`vsql -d dbname -U dbadmin -Atq -w Zongfen_12 -c“select * from test.dim_flow_direction order by flow_type_code”> / database / datastage / export / dim_all / test`;

·  通过数据文件向 vertica数据库里加数据:拷贝test_flux_flux_se_bus_res_ana_d从'/ database / imp_file / fct_flux_se_bus_res_ana_d'到v_dbname_node0002分隔符'|';

·  显示表结构: \ d table;

·  vertica数据的表中导出数据到数据文件,shell命令:
    echo`vsql -d dbname -U dbadmin -Atq -w Zongfen_12 -c“select * from test.dim_flow_direction order by flow_type_code”> / database / datastage / export / dim_all / test`

·  通过数据文件向
  vertica数据库里加数据:拷贝test_flux_flux_se_bus_res_ana_d从'/ database / imp_file / fct_flux_se_bus_res_ana_d'到v_dbname_node0002分隔符'|';

更改字段数据类型
         alter table test.dim_micro_area_gsm更改列cell_id设置数据类型数值(15,0);          
         对于数值类型:类型INTEGER,INT,BIGINT,TINYINT,INT8,SMALLINT和scale <= 18的所有NUMERIC值和精度0之间是可以互相转化的。此外,数字类型的精度(precision)是无法更改的,但是长度(scale)是可以修改的,(0-18)之间可以互修改,(19-37 )之间可以互修改。

·修改表所属的用户
alter table test.fct_fournet_wlanap_equp_ana_d owner to dev_test;

·vertica怎么修改一个表字段允许为空呢,查看官方文档得到:

              alter table TABLE_NAME alter column prov_name drop not NULL; 

          杀锁:

SELECT transaction_id FROM locks; ---查看transaction_id
SELECT * FROM sessions where transaction_id = <>;
SELECT INTERRUPT_STATEMENT('<session_id>','<statement_id>');

右(col,num),左(col,num)函数

右(名称,4)函数是山坳列从右向左取4位。

左(姓名,4)函数是山坳列从左向右取4位。


Vertica的的分析函数介绍

分析函数作为 SQL 言语的一种扩展已经被纳入了美国国家标准化组织SQL 委员会的SQL 规范说明书中。所以不同数据库厂商支持的分析函数其语法结构和函数名称也基本一致。节约篇幅,这里仅介绍Vertica的的分析函数语法和函数作用,应用函数相关例子

1.  分析函数语法

ANALYTIC_FUNCTION(argument-1,...,argument-n)
OVER([window_partition_clause]
[window_order_clause]
[window_frame_clause)

 

以下是函数用途简短描述清单:

该函数计算组中表达式的累积和

MIN

在一个组中的数据窗口中查找表达式的最小值

MAX

在一个组中的数据窗口中查找表达式的最大值

AVG

用于计算一个组和数据窗口内表达式的平均值。

计数

对一组内发生的事情进行累积计数

根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

DENSE_RANK

根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置

FIRST_VALUE

返回组中数据窗口的第一个值

LAST_VALUE

返回组中数据窗口的最后一个值。

落后

可以访问结果集中的其它行而不用进行自连接

LEAD与LAG相反,LEAD可以访问组中当前行之后的行

ROW_NUMBER

返回有序组中一行的偏移量,从而可用于按特定标准排序的行号

STDDEV 

计算当前行关于组的标准偏离

STDDEV_POP

该函数计算总体标准偏离,并返回总体变量的平方根

STDDEV_SAMP

该函数计算累积样本标准偏离,并返回总体变量的平方根

VAR_POP

该函数返回非空集合的总体变量(忽略null)

VAR_SAMP

该函数返回非空集合的样本变量(忽略null)

方差

如果表达式中行数为1,则返回0,如果表达式中行数大于1,则返回VAR_SAMP

CUME_DIST

计算一行在组中的相对位置

NTILE

将一个组分为“表达式”的散列表示

PERCENT_RANK

和CUME_DIST(累积分配)函数类似

PERCENTILE_DISC

返回一个与输入的分布百分比值相对应的数据值

PERCENTILE_CONT

返回一个与输入的分布百分比值相对应的数据值

MEDIAN

在一个组中的数据窗口中查找最小值与最大值的平均值

2.  参数-1,...,参数-n

分析函数的参数

3.  window_partition_clause

根据划分表达式设置的规则, PARTITION BY (按... 划分)将一个结果逻辑分成Ñ 个分组划分表达式。在此划分分组用作同义词。分析函数独立应用于各个分组,并在应用时重置。

语法
OVER(PARTITION BY expression [,...])

4.  window_order_clause

ORDER BY (按... 排序)语句规定了每个分组(划分)的数据如何排序。这些必然影响分析函数的结果。

语法
OVER(ORDER BY expression [{ASC | DESC}]
... [NULLS {FIRST | LAST | AUTO}] [,expression ...])

5.  window_frame_clause

窗口生成语句用以定义滑动或固定数据窗口,分析函数在分组内进行分析。该语句能够对分组中任意定义的滑动或固定窗口进行计算。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值