我试图在ID上加入两个数据库。关于报价的第一个数据库没有网站上的数据,所以我想从日志数据库中加入它。但是,在日志数据库中,ID不是唯一的,而是ID的第一个按时间顺序排列的外观 - 这是正确的网站。 当我运行下面的查询时,我得到:
查询执行期间超出资源。
因此,我不知道问题是代码还是其他问题。
由于
SELECT ID, user,busWeek, count(*) as num FROM [datastore.quotes]
Join (
select objectID, first(website) from (
select objectID, website, date from [datastore.allLogs]
order by date) group by objectID)
as Logs
on ID = objectID
group by ID,user,busWeek
答案 0 :(得分:0)
你可以尝试:
SELECT ID, user,busWeek, count(*) as num FROM [datastore.quotes]
Join EACH (
select objectID, first(website) from (
select objectID, website, date from [datastore.allLogs]
order by date) group EACH by objectID)
as Logs
on ID = objectID
group by ID,user,busWeek
请注意'EACH' - 将来不再需要该关键字,但它今天仍然有用。
答案 1 :(得分:0)
我认为问题出在ORDER BY上。这会将所有计算带到一个节点,导致超出资源"信息。我知道你需要它为每个对象带来第一个(按日期)网站 尝试重写此分区选择(内部联接)。 例如,使用具有OVER(PARTITION BY ... ORDER BY)的窗口函数 在这种情况下,我认为,你有机会并行实现这个目标
见以下参考文献
Window Functions