gpt4 book ai didi

SQL Server 2008 R2 - 孤岛和差距

转载 作者:行者123 更新时间:2023-12-04 05:10:53 24 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




8年前关闭。




我有一个简单的 2 列表。 PctGain 包含每周股市 yield 百分比。 WSeqkey 包含一个连续的整数值,每新周递增一次。上表大约有 3300 行。这是一个示例。

PctGain WSeqKey
0.12% 4407
0.31% 4406
0.68% 4405
1.14% 4404
0.95% 4403
0.38% 4402
4.57% 4401
-1.94% 4400
1.17% 4399
-0.32% 4398

什么需要帮助解决,并在此过程中学习如何做...编写/运行一个查询,该查询将告诉我正负序列何时开始和结束。就像是
Negative Beg 4398
Negative End 4398
Positive Beg 4399
Positive End 4399
Negative Beg 4400
Negative End 4400
Positive Beg 4401
Positive End 4407

提前感谢您解决这个问题并帮助我一路学习。

弗兰克

最佳答案

像这样的事情应该可以完成工作 SQL Fiddle

它为 SIGN 找到具有相同值的顺序数据岛。并使用 Itzik Ben Gan 的行号技术为它们分配相同的分组值,然后对它们进行分组和聚合。 CROSS APPLY ... VALUES取消旋转 MINMAX

;WITH T1
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY SIGN(PctGain)
ORDER BY WSeqKey) - WSeqKey AS Grp
FROM YourTable),
T2
AS (SELECT MIN(WSeqKey) AS BeginSeq,
MAX(WSeqKey) AS EndSeq,
SIGN(PctGain) AS Sign
FROM T1
GROUP BY Grp,
SIGN(PctGain))
SELECT CASE Sign
WHEN -1 THEN 'Negative'
WHEN 0 THEN 'Equal'
WHEN 1 THEN 'Positive'
END AS [Sign],
Descriptor,
SeqKey
FROM T2
CROSS APPLY (VALUES('Begin', BeginSeq),
('End', EndSeq)) V(Descriptor, SeqKey)
ORDER BY SeqKey

关于SQL Server 2008 R2 - 孤岛和差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927466/

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