【发布时间】:2014-11-26 17:16:47
【问题描述】:
我正在使用 Oracle SQL,我需要有关硬查询的帮助。
我有两张桌子
(table_A):
GroupID (int)
ClientID (int)
Age (int)
(table_B):
GroupID (int)
Budget (int)
我的查询应该针对每组客户进行:
- 计算组的平均年龄
- 计算平均预算 每个客户的年龄与平均年龄一样(年龄可以更大或更小) 1)。例如:Average_Age - 1
-
Output value:(预算)/(平均预算)
例如:
table_A:
GroupID | ClientID | Age
A | 11 | 26
A | 22 | 27
A | 33 | 21
B | 44 | 22
B | 55 | 29
B | 66 | 25
C | 77 | 23
C | 88 | 22
C | 99 | 20
D | 111 | 24
D | 222 | 26
D | 333 | 25
table_B:
GroupID | Budget
A | 100
B | 200
C | 300
D | 400
表中的值都不是固定的。 A组产值计算示例:
- A组平均年龄:(27+27+21) / 3 = 24.6
- 年龄在 23-25 之间的 ClientID 分别为:66、77、111、333。他们的平均预算为: (200+300+400*2)/4 = 325
- 输出值应为:100 / 325 = 0.307
输出表应该是
GroupID | Output Value
A | 0.307
B | ....
C | ....
D | ....
任何建议如何做到这一点?我已经尝试了很多方法。我感到很失落。
【问题讨论】:
-
None of the values in the tables are not fixed.- 那么,所有值都固定了吗? (为了清楚起见) -
对不起。所有这些都不是固定的(我在上面更改了它)。