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、截取整数oracle 时间转换
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这样的值,其他数据库不识别
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论