我有一点复杂的查询,我正在努力。你会注意到模式并不是最简单的工作,但这是我得到的,没有时间重新设计(常见的故事!)。查询将单个表上的某些行集合相乘
我有类似下面的行。注意:3位value
数字只是我编制的随机数字。
id field_id value
1 5 999
1 6 888
1 7 777
1 8 foo <--- foo so we want the 3 values above
1 9 don't care
2 5 123
2 6 456
2 7 789
2 8 bar <--- bar so we DON'T want the 3 values above
2 9 don't care
3 5 623
3 6 971
3 7 481
3 8 foo <--- foo so we want the 3 values above
3 9 don't care
...
...
n 5 987
n 6 654
n 7 321
n 8 foo <--- foo so we want the 3 values above
n 9 don't care
我想这样的结果:
id result
1 999*888*777
3 623*971*481
...
n 987*654*321
这是清楚了吗?所以我们有一个有n*5
行的表格。对于每组5
行:3
其中有我们可能要乘的值,我们可能要1
告诉我们如果我们要乘以和1
其中我们不关心所以我们不想要查询结果中的行。
我们可以在Oracle中做到这一点吗?最好是一个查询..我想你需要使用乘法运算符(以某种方式)和一个分组。
任何帮助将是伟大的。谢谢。
只是为了澄清一下。 'value'是一个varchar2字符串。是'foo'总是'field_id' = 8并且乘以的值总是'field_id' 5-7? – DazzaL
@DazzaL:是的,是的,对你的三个问题是肯定的:)。 – ale