【发布时间】:2016-10-25 19:46:05
【问题描述】:
我想要一个表,其中包含数据库中每个 EntityCode 的最高 BID 和最低 ASK(价格)。
以下两组代码返回两个结果集,但我还无法找到/弄清楚如何加入它们:
获得最高出价
(SELECT * FROM
(SELECT
Contracts.Orders2Buy.EntityCode,
Contracts.Orders2Buy.Bid,
Contracts.Orders2Buy.NumContractsStillAvailable,
Contracts.Orders2Buy.TimePlaced,
RANK() OVER (PARTITION BY EntityCode
ORDER BY Contracts.Orders2Buy.Bid DESC,
Contracts.Orders2Buy.TimePlaced DESC) AS Rank
FROM
Contracts.Orders2Buy
WHERE
Contracts.Orders2Buy.NumContractsStillAvailable > 0) AS temp
WHERE temp.Rank = 1)
获得最低要价
(SELECT * FROM
( SELECT
Contracts.Orders2Sell.EntityCode,
Contracts.Orders2Sell.Ask,
Contracts.Orders2Sell.NumContractsStillAvailable AS AskVolume,
Contracts.Orders2Sell.TimePlaced,
RANK () OVER ( PARTITION BY EntityCode
ORDER BY Contracts.Orders2Sell.Ask ASC,
Contracts.Orders2Sell.TimePlaced DESC) AS Rank
FROM
Contracts.Orders2Sell
WHERE
Contracts.Orders2Sell.NumContractsStillAvailable > 0) AS temp2
WHERE temp2.Rank = 1)
【问题讨论】:
-
这篇文章从 cte vs table variable performance 变成了 sql server cost vs web server cost?
-
我的建议 1) 问一个具体的问题。 2)发布您的相关代码。
-
谢谢,我还是这个论坛的新手。
标签: sql-server rank partition