gpt4 book ai didi

sql - JOIN/GROUP 选择最早

转载 作者:行者123 更新时间:2023-12-04 04:34:43 25 4
gpt4 key购买 nike

这是Bar中的数据:

ID     FooID    StartDate
1 1 1-1-2011
2 1 2-1-2011
3 1 3-1-2011
4 2 9-1-2011
5 2 4-1-2011

这是表 Foo :
ID   Name
1 Car
2 Bus

我需要 LEFT JOIN最早出现的时间 FROM Foo

这就是我现在所拥有的:
SELECT NAME
FROM Foo
LEFT JOIN (
SELECT *
FROM Bar
WHERE Bar.FooID = Foo.ID
ORDER BY Bar.StartDate
) MyBar
ON (ROWNUM = 1)

但是出现了 ORA-00923。

最佳答案

我不太确定您要在这里做什么,但我认为您不能加入 rownum,也不能从内部选择中解决 foo.id。我可以给你这种方法,我认为它应该可以解决问题:

select name
from foo
left join (
select bar.*
, dense_rank() over (order by bar.startdate) as cand
from bar
) mybar
on (mybar.fooid = foo.id)
where mybar.cand = 1

它首先按 startdate 对 bar 中的条目进行排名,然后通过 id 加入。在它之外只选择排名第一的候选人(最早开始日期)

关于sql - JOIN/GROUP 选择最早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com