我是Vertica的新手.我需要写一个触发器,以便在发生表更新时插入到历史表中.
它在MSSQL中很简单.喜欢老虎是我的需要,任何机构都可以建议一些直接的链接或详细说明我没有多少时间进行调查,搜索没有产生效果.
谢谢
哪个指令INSERT
或INSERT /*+ direct */
插入时间最短?为什么?
检查了其他问题没有得到明确的答案。我看到一个使用 MySQL 的简单答案,但它在 Vertica 中不起作用。是否有一种有效的方法来计算跨多个列的 vertica SQL 中的不同值。
例如,我知道在 MySQL 中你可以做这样的事情:
SELECT l.computer, l.user, COUNT(DISTINCT l.computer, l.user) AS count
FROM login l
GROUP BY l.computer, l.user
Run Code Online (Sandbox Code Playgroud)
vertica 中是否有类似的语法?
谢谢,本
我正在尝试使用聚合时间戳,STDDEV
并且我不断收到我提供的参数不存在的错误.有没有办法将HP Vertica SQL中的时间戳转换为int或数字格式甚至unix时间戳.
我试过了:
select a, STDDEV(timestamp1)
from mytable
group by a
Run Code Online (Sandbox Code Playgroud)
我得到错误没有函数匹配给定的名称参数.我以前用过stddev.我查看了实际的表格,看到虽然它是一个时间戳字段,但它看起来像是一个日期.
我有一个SQL查询
with subtable as (
................
)
select *
from subtable
Run Code Online (Sandbox Code Playgroud)
我想将select语句中的记录插入表中.寻找像这样的东西:
with subtable as (......)
insert into newtable
select *
from subtable
Run Code Online (Sandbox Code Playgroud)
但是,在Vertica中,INSERT不能与WITH(CTE)语句一起使用.
这有什么工作吗?
谢谢您的帮助
用什么函数来选择Vertica中表的前100个随机记录?
在Sybase中我们使用类似的东西
Select top 100 * from table_name a order by rand(rowid(a))
Run Code Online (Sandbox Code Playgroud) 这是一个示例数据集:
ID Value
1 421
1 532
1 642
2 3413
2 0
2 5323
Run Code Online (Sandbox Code Playgroud)
我想要一个查询,在这种情况下,只对ID = 1求和,因为它的所有值都大于0.我不能使用一个WHERE
声明,WHERE Value > 0
因为那时ID = 2仍然会返回一个值.我觉得这可能是一个我可以使用OVER(PARTITION BY...)
声明的实例,但我不够熟悉,不能创造性地使用它.
顺便说一句,我不是简单地添加一个WHERE ID = 1
语句,因为这需要覆盖更大的数据集.
由于导入错误,我有这种奇怪的情况。
假设一个表:
date feat1 feat2
2019-01-01 a z
2019-01-01 a z
2019-01-03 z a
2019-01-04 z a
2019-01-05 z a
Run Code Online (Sandbox Code Playgroud)
从日期开始,我们交换了值feat1
和列feat2
。结果我在找
date feat1 feat2
2019-01-01 a z
2019-01-01 a z
2019-01-03 a z
2019-01-04 a z
2019-01-05 a z
Run Code Online (Sandbox Code Playgroud)
如何在不创建临时列的情况下通过一条更新语句解决此问题?我正在使用Vertica DB
我正在尝试通过vsql
使用-h
参数指定主机 IP来连接到 Vertica 节点。但是,我想指定故障转移节点。
根据文档备份主机可以作为 JDBC 连接中的属性提供。
我如何通过 实现相同的功能vsql
?