Sql server 用于计算连续几天最大损失的sql查询
我的股票市场数据保存在sql server数据库中,用于记录我的历史交易。这是表格结构 表列Sql server 用于计算连续几天最大损失的sql查询,sql-server,Sql Server,我的股票市场数据保存在sql server数据库中,用于记录我的历史交易。这是表格结构 表列 交易日期 股票名称 数量 入口价格 出口许可证 利润损失 我想知道的是我连续N天以失败告终。或者换言之,是我遇到过的最大损失序列。我有四年的数据。 我有一个sql,它给了我每天的利润损失,但它的数据太多,无法找到连续亏损的日子。在下面共享该sql select tradedate, sum(profitloss) as profitloss from calls wher
- 交易日期
- 股票名称
- 数量
- 入口价格
- 出口许可证
- 利润损失
select tradedate, sum(profitloss) as profitloss
from calls
where
group by TradeDate
order by ProfitLoss
--Create table
CREATE TABLE [dbo].[Calls](
[CallDate] [datetime] NOT NULL,
[StockName] [varchar](500) NOT NULL,
[Quantity] [int] NOT NULL,
[EntryPrice] [float] NOT NULL,
[ExitPrice] [float] NOT NULL,
[ProfitLoss] [float] NOT NULL
) ON [PRIMARY]
--Sample Data for a day
TradeDate StockName Profitloss
2012-10-05 09:19:00.000 HINDALCO -999.6
2012-10-05 09:19:00.000 CIPLA -999.6
2012-10-05 09:19:00.000 BPCL -999
2012-10-05 09:19:00.000 BANKBARODA 3256.25
2012-10-05 09:19:00.000 TATASTEEL 3493.5
2012-10-05 09:19:00.000 AMBUJACEM 6230.36
2012-10-05 09:19:00.000 JINDALSTEL 7953.01
请试试这个
select tradedate, sum(profitloss) as profitloss
from calls
where
group by TradeDate
having sum(profitloss) < 0
order by tradedate desc
选择tradedate,sum(profitloss)作为profitloss
来自电话
哪里
按交易日期分组
总和(利润损失)<0
按交易日期说明订购
请试试这个
select tradedate, sum(profitloss) as profitloss
from calls
where
group by TradeDate
having sum(profitloss) < 0
order by tradedate desc
选择tradedate,sum(profitloss)作为profitloss
来自电话
哪里
按交易日期分组
总和(利润损失)<0
按交易日期说明订购
我无法访问测试数据或您喜欢的SQL,但这个粗略的想法应该适合您。使其适合您的数据和SQL方言
使用
当(sum(profitloss)over(1个前一行和1个前一行之间的行)*sum(profitloss)over(当前_行和当前_行之间的行))大于0时,则0否则1以符号_change_标记结束
然后
count(*)over(当sign\u change\u marker=1时,从当前行到以下未绑定重置的行)
来计算从每个日期开始的赢或输的连胜长度我无法访问测试数据或您的SQL风格,但这个粗略的想法应该适合您。使其适合您的数据和SQL方言
使用
当(sum(profitloss)over(1个前一行和1个前一行之间的行)*sum(profitloss)over(当前_行和当前_行之间的行))大于0时,则0否则1以符号_change_标记结束
然后,
count(*)覆盖(当sign\u change\u marker=1时,从当前行到以下未绑定重置的行)
以计算从每个日期开始的赢或输的连胜长度mysql或sql server?请标记正确的RDBMS(产品和版本)ProfitLoss列的数据是什么?你能提供一些样本数据和期望的输出吗?另外,最好提供示例数据DDL和DML语句,以便回答您问题的人能够实际测试答案。您好,我们如何获得损益值?是-ve是亏损吗?是的。盈利时亏损是数字+ve,亏损时亏损是-ve数字看起来像是缺口和孤岛。mysql还是sql server?请标记正确的RDBMS(产品和版本)ProfitLoss列的数据是什么?你能提供一些样本数据和期望的输出吗?另外,最好提供示例数据DDL和DML语句,以便回答您问题的人能够实际测试答案。您好,我们如何获得损益值?是-ve是亏损吗?是的。盈利时亏损是数字+ve,亏损时亏损是-ve。这看起来像是缺口和孤岛问题。