将postgresql查询重写为clickhouse

kx5bkwkv  于 2021-06-15  发布在  ClickHouse
关注(0)|答案(0)|浏览(228)

我有一个postgres查询:

SELECT 1 FROM vc_money_log_aggregated vmla2
                    LEFT JOIN vc_user_visits vuv2 ON vuv2.id = vmla2.visit_id
                    WHERE vmla2.uid = vu.id
                      AND coalesce(vuv2.app_type, (SELECT vuv2.app_type
                                                    FROM vc_user_visits vuv2
                                                        WHERE vuv2.uid = vmla2.uid
                                                        AND vuv2.dt < vmla2.from_dt
                                                    ORDER BY vuv2.dt DESC
                                                    LIMIT 1)
                                    ) NOT IN ('android', 'ios', 'wp')
                      AND vmla2.from_dt BETWEEN (SELECT start_dt FROM settings) AND (SELECT end_dt FROM settings)

我需要把它转换成clickhose查询。但是如何重写相关查询(coalesce部分)?我试图编写此clickhouse查询,但出现内存不足异常:

select
    uid,
    app_type,
    dt
from
(select
   uid,
   max(dt) dt
from
(select
    uid,
    from_dt
from
    postgres_replica.vc_money_log_aggregated) t1
join
(
select
    app_type,
    dt,
    uid
from
    postgres_replica.vc_user_visits
) t2
USING uid
where t1.from_dt > t2.dt
group by
   uid) t3
join
(
select
    app_type,
    dt,
    uid
from
    postgres_replica.vc_user_visits
) t4
USING uid, dt

我应该如何重写这个查询?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题