1
我正在使用vertica。在Vertica中卷起稀疏表格
问题: 我有稀疏表(user_session_tmp2)。行包含session_token和params列表(大约15个字段)。多行可以描述一个session_token。我需要得到表,其中只有一行介绍了一个会话(即合并所有数据,一个会话在一排)
显而易见的解决方案是:
merge /*+ direct */ into user_session tgt using user_session_tmp2 src on src.session_token=tgt.session_token
when matched then
update set time = (case when src.time> tgt.time then tgt.time else src.time)
device_id = (case when src.device_id is not null then src.device_id else tgt.device_id)
when not matched then
insert values(src.session_token, src.user_id, src.time, src.client_time, src.device_id, src.app_version, ...);
不幸的是,它是不允许使用在更新的情况下表达查询。
'MERGE'是不是最好的方法。你能否更新你的问题,并添加一个小样本数据集和所需的结果? – Kermit 2014-09-02 17:53:09