vertica基本常用sql

写在提前的话,写判断条件的时候要小心负数!!!!!

Vertica

1、把csv格式的数据导入Vertica

vsql -h ip -U 用户名 -w ‘密码’-c "copy 表名from local 'xx.csv'  delimiter E'分隔符(csv为逗号 ^A 为/001)' ";

2、把vertica数据导出

vsql -h ip -U 用户名-w ‘密码’ -o 导出文件名 -F '列分隔符'  -R    $'|-|\n(行分隔符)' -c "sql语句'"  -Aqt

3、在后台执行sql语句

vsql -h ip -U 用户名-w ‘密码’ -f ‘xx.sql(文件)’

在生产中vertica应该关闭了自动提交,所以要写commit;以至于不会自动断掉

4、从一个库导数到另一个库

vsql -h 要数的ip -U 要数的用户 -w '要数的密码'

=>Connect to vertica 推数的实例名user 推数的用户名 password ‘推数的密码’ on ‘ip’,端口;

1、Copy 要数的库名.要数的表名 from vertica.推数的库名.推数的表名/视图 ;

2、EXPORT TO VERTICA 要数的实例名.要数的库名.要数的表名from 推数的实例名.推数的库名.推数的表名;--全量

3、EXPORT TO VERTICA 要数的实例名.要数的库名.要数的表名As sql语句--sql语句可以做筛选条件

=> DISCONNECT ExampleDB;
DISCONNECT

 

5、更改字段数据类型

Alter table 表名 add column 字段名 字段类型;

(如果是numeric类型的不能直接更改只能新建表把数据重新导入)

Alter table 表名 alter column字段名set data type 新类型

6、删除字段

Alter table表名 drop column字段名;

7、修改字段名

ALTER TABLE 表名  RENAME COLUMN 原列名    TO 新列名;

8、截取整数

trunc(字段) 截取numeric\decimal类型中整数的部分,并不会因为小数点后一位而四舍五入
Cast(字段 as integer) 这样截取的整数会四舍五入

9、保留小数位

Round(字段名,字段长度) 此时也会四舍五入

10、日期计算

10.1计算出日期中差的月

months_between('20190930'::date,'20190630'::date)
months_between函数返回两个日期之间的月份数。如果两个日期月份内天数相同,或者都是某个月的最后一天,返回一个整数,
否则,返回数值带小数,以每天1/31月来计算月中剩余天数

DATEDIFF (DAY,'20190630'::date,'20190930'::date)/30 这样写的话碰上瑞年的话计算相差的整数月不是整数

DATEDIFF (month,'20190630'::date,'20190929'::date) 这样写的话差几天不能用小数表示,都是整数

10.2计算出日期中差的年

DATEDIFF (DAY,'20190630'::date,'20190930'::date)/365 --这样计算如果日期之间有瑞年就不是整数了

关联的时候使用主键或唯一的值防止产生笛卡尔积,产生之后可以用distinct字段来处理

vertica在进行时间格式转换的时候建议使用‘20190202’::DATE来进行转换

不要使用类似oracle转换时间的写法 类似 to_date('','yyyy-mm-dd')这样写的话会产生一个001-01-01 BC这样的值,其他数据库不识别

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值