首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL For-each循环替代方案

SQL For-each循环替代方案
EN

Stack Overflow用户
提问于 2012-01-25 02:23:21
回答 1查看 5.5K关注 0票数 2

我有两个表(我们称它们为TradingWindows和VolumeData)。对于每种不同的股票,TradingWindows的每一行都有一个startBin和endBin。在VolumeData中,有stock、binIndex、volume列。

我希望通过执行以下操作来组合这些信息:对于TradingWindows表中的每一行,我希望汇总> startBin和< endBin的所有卷binIndex。(其思想是获得开始和结束之间的总音量)。

现在,从过程性编程背景来看,这很简单(只需编写一个for-each循环)。我知道这在SQL中是可能的,但我是新手,我想知道是否有更有效的方法来做到这一点。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-25 02:32:23

我正在对您的表结构进行一些猜测,但我认为您正在寻找类似以下内容的东西:

代码语言:javascript
运行
复制
Select VD.stock, Sum(volume)
From VolumeData VD
    Inner Join TradingWindows TW On VD.stock = TW.stock
Where VD.binIndex Between TW.startBin And TW.endBin
Group By VD.stock

这将匹配您的VolumeData行和您的TradingWindow行(按股票),过滤掉不在您的范围内的VolumeData行,并按股票将它们分组在一起。

编辑:这是一个非包含式版本(正如JNK所指出的,BETWEEN将包括startBin和endBin):

代码语言:javascript
运行
复制
 Select VD.stock, Sum(volume)
    From VolumeData VD
        Inner Join TradingWindows TW On VD.stock = TW.stock
    Where VD.binIndex > TW.startBin And VD.binIndex < TW.endBin
    Group By VD.stock
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8991982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档