【发布时间】:2016-08-11 12:37:06
【问题描述】:
我有一个包含大量条目的表,我只需要每个组中的第一个。
该表用于存储过去 30 年的每日基金价格(1000 多只基金)。我需要找到该日期存在的每个基金在该日期之前或特定日期的最后价格(因此每个基金只有一行)。
在其简化形式中,该表包含 Date、FundCode 和 Price 列。
以下输入
Date FundCode Price
2016/01/05 X123 1.234
2016/01/04 X123 1.233
2016/01/03 X123 1.222
2016/01/05 A456 1.876
2016/01/04 A456 1.822
2016/01/03 A456 1.776
2016/01/03 M234 3.234
...当查询 2016/01/04 时,应该产生
Date FundCode Price
2016/01/04 X123 1.233
2016/01/04 A456 1.822
2016/01/03 M234 3.234
我有一个解决方案,它在 where 中使用相关子查询,但再多的索引混乱也不会让它在合理的时间内运行。
我确信有一个简单的解决方案,但我只是看不到它。
【问题讨论】:
-
添加一些示例表数据,以及预期的结果。同时标记使用的 dbms。
-
不要犹豫,提供示例数据、所需结果和您正在使用的查询。另外,请记住用您正在使用的数据库标记问题。
标签: sql sql-server