【发布时间】:2021-02-24 21:04:37
【问题描述】:
我有一个查询给我上面的错误。我的代码如下:
SELECT *,
dense_rank() OVER (PARTITION BY email
ORDER BY priority_score,
comp) AS r
FROM main_query
WHERE NOT EXISTS
(SELECT name,
event,
email,
report_date
FROM gm
WHERE gm.name= main_query.name
AND gm.event= main_query.event
AND gm.email = main_query.email
AND gm.report_date >= (CURRENT_DATE - 25)::date)
ORDER BY priority_score ASC
我看到克服这些类型错误的一个解决方案是能够在不相关的查询中转换相关的子查询 (sherlock)。因此,我正在寻找使用where not exists 语句但没有相关子查询的其他方法,即在子查询中调用main_query 表((...) from gm left join main_query on(...))。有谁知道这是否可行以及如何做?
任何建议都非常受欢迎,并提前非常感谢!
【问题讨论】:
标签: sql subquery amazon-redshift correlated-subquery sql-optimization