我想抓住下表中每个符号的最近两个价格
如果我只想要最近的价格 “选择不同的符号,价格从table_1开始按日期,时间排序”
得到两个最近的价格让我有点卡住CREATE TABLE [dbo].[Table_1](
[symbol] [nchar](15) NOT NULL,
[price] [float] NULL,
[date] [date] NOT NULL,
[time] [time](7) NOT NULL,
) ON [PRIMARY]
答案 0 :(得分:4)
在SQL Server中,您可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by symbol order by date desc, time desc) as seqnum
from table_1 t
) t
where seqnum <= 2;
作为一个说明。要获得最新价格,您将不执行:
select distinct symbol, price
from table_1
order by date, time;
这会产生语法错误,因为date
和time
不在select
子句中。如果您删除了order by
,则只需获取所有不同symbol
/ price
对的列表。
答案 1 :(得分:0)
select top 2 symbol, price from table_1 order by date, time
怎么样?