写在提前的话,写判断条件的时候要小心负数!!!!!
Vertica
1、把csv格式的数据导入Vertica
1vsql -h ip -U 用户名 -w ‘密码’-c "copy 表名from local 'xx.csv' delimiter E'分隔符(csv为逗号 ^A 为/001)' ";
2、把vertica数据导出
1vsql -h ip -U 用户名-w ‘密码’ -o 导出文件名 -F '列分隔符' -R $'|-|n(行分隔符)' -c "sql语句'" -Aqt
3、在后台执行sql语句
1vsql -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语句可以做筛选条件 复制代码
复制代码
|
5、更改字段数据类型
1
2
3Alter table 表名 add column 字段名 字段类型; (如果是numeric类型的不能直接更改只能新建表把数据重新导入) Alter table 表名 alter column字段名set data type 新类型
6、删除字段
1Alter table表名 drop column字段名;
7、修改字段名
1ALTER TABLE 表名 RENAME COLUMN 原列名 TO 新列名;
8、截取整数
1
2trunc(字段) 截取numericdecimal类型中整数的部分,并不会因为小数点后一位而四舍五入 Cast(字段 as integer) 这样截取的整数会四舍五入
9、保留小数位
1Round(字段名,字段长度) 此时也会四舍五入
10、日期计算
10.1计算出日期中差的月
1
2
3
4months_between('20190930'::date,'20190630'::date) months_between函数返回两个日期之间的月份数。如果两个日期月份内天数相同,或者都是某个月的最后一天,返回一个整数, 否则,返回数值带小数,以每天1/31月来计算月中剩余天数
DATEDIFF (DAY,'20190630'::date,'20190930'::date)/30 这样写的话碰上瑞年的话计算相差的整数月不是整数
DATEDIFF (month,'20190630'::date,'20190929'::date) 这样写的话差几天不能用小数表示,都是整数
10.2计算出日期中差的年
1DATEDIFF (DAY,'20190630'::date,'20190930'::date)/365 --这样计算如果日期之间有瑞年就不是整数了
关联的时候使用主键或唯一的值防止产生笛卡尔积,产生之后可以用distinct字段来处理
vertica在进行时间格式转换的时候建议使用‘20190202’::DATE来进行转换
不要使用类似oracle转换时间的写法 类似 to_date('','yyyy-mm-dd')这样写的话会产生一个001-01-01 BC这样的值,其他数据库不识别
最后
以上就是单薄鸵鸟最近收集整理的关于vertica基本常用sql写在提前的话,写判断条件的时候要小心负数!!!!!Vertica的全部内容,更多相关vertica基本常用sql写在提前内容请搜索靠谱客的其他文章。
发表评论 取消回复