【发布时间】:2013-01-15 18:51:59
【问题描述】:
我正在尝试提取期权交易量的报告数据以创建摘要。我的查询目前是这样的:
select concat(contract, ',', group_concat(traded), ',', sum(traded))
from
(
select contract, put_call, sum(oov+gv+pv) as traded
from report_data
where contract <> "AO" and date = '2013-01-30'
group by contract, put_call
order by contract asc, put_call asc
) temp
group by contract
返回:
7A,9600,0,9600
BV,100,400,500
WA,0,900,900
WM,500,500
WZ,0,0
最后两行缺少数字的原因是因为当天数据库中只有 WM、WZ 合约的看跌期权。这与 7A 或 WA 不同,后者有看跌和看涨的数据,但没有交易量(因此是零)。
我一直在尝试将表加入或联合到自身,以便在合约没有放置(或调用)的情况下生成零,但我似乎无法弄清楚。
有什么建议吗?
======================================
更简单:
数据:
Contract Put_call Traded OtherData
A P 10 blah
A C 5 blah
B P 10 blah
B C 0 blah
C P 10 blah
我想要一个查询结果:
A, 5, 10, 15
B, 0, 10, 10
C, 0, 10, 10
我的查询当前返回:
A, 5, 10, 15
B, 0, 10, 10
C, 10, 10
C 合约调用缺少零,因为根本没有数据,而不是零交易的数据。
如果这有意义,请告诉我。
【问题讨论】:
-
你能再澄清一点吗?
-
是的,当然。我将在上面进行简化。
-
所以您正在寻找
PIVOT? -
是的,这就是我要找的词。现在我知道要查找什么,似乎有很多关于此的文档。谢谢!