gpt4 book ai didi

sql - Oracle sql Inner join右表第一条记录

转载 作者:行者123 更新时间:2023-12-02 06:35:41 26 4
gpt4 key购买 nike

我的问题是:

我有两个这样的表:

username | portname | symbol | shares
---------+----------+--------+-------
phil | test | APL | 214
---------+----------+--------+--------

它有更多的记录,但这只是一个例子。然后我有另一个这样的表,每个符号有多个记录

symbol | high | low | timestamp
-------+------+-----+-----------
APL | 200 | 20 | *timestamp object
APL | 400 | 34 | *timestamp object

我想在连接两个表的地方返回一个表,但只有第二个表的第一行被连接,所以返回这样的东西:

symbol | high | low | timestamp
-------+------+-----+----------
APL | 400 | 34 | *timestamp object

所以只匹配了右表中的一条记录。我已经尝试了很多东西,但没有得到任何与 group by 或 distinct 一起工作的东西。

谢谢!

最佳答案

SELECT t1.symbol, t3.high, t3.low, t3.timestamp 
FROM Table1 t1
JOIN (
SELECT inn.*
FROM (SELECT t2.*, (ROW_NUMBER() OVER(PARTITION BY symbol ORDER BY timestamp DESC)) As Rank
FROM Table2 t2) inn
WHERE inn.Rank=1
) t3
ON t1.symbol = t3.symbol;

参见 SQL Fiddle

关于sql - Oracle sql Inner join右表第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085934/

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