如何解决Clickhouse 子查询使用主查询中的属性
我需要使用来自主查询的参数执行子查询。但是当我可以尝试执行时:
SELECT
(
SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1
)
FROM changes ch
LIMIT 1000
出现错误
Error running query: Code: 47,e.displayText() = DB::Exception:
Missing columns: 'ch.trackable_id' while processing query:
'SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1',required columns: 'time' 'ch.trackable_id' 'trackable_id' 'action',maybe you meant: ['time','trackable_id','action']:
While processing
(SELECT time
FROM changes ch2
WHERE ch2.trackable_id = ch.trackable_id AND ch.action = 'create'
LIMIT 1) AS _subquery1 (version 21.3.14.1 (official build))
任何想法,请。在 Postgresql 上它工作正常。
我对这个数据库的经验很少。也许我需要使用不同的方法来构建查询。
解决方法
也许 join
和聚合会起作用?
SELECT ch.*,ch2.*
FROM changes ch LEFT JOIN
(SELECT ch2.trackable_id,MAX(time) as create_time
FROM changes ch2
WHERE ch2.action = 'create'
GROUP BY ch2.trackable_id
) ch2
ON ch2.trackable_id = ch.trackable_id;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。