【发布时间】:2015-02-06 13:51:18
【问题描述】:
我有这个样本。
我需要的是获得每个键的平均值,而不是键和值。但是,我使用的语法似乎给了我每个键和值的平均值。
select avg(value2),KEY,VALUE from testavg
GROUP BY key,value
order by key, value
否则会产生语法错误。我需要的结果如下:
10 A 0.96
10 B 0.04
12 C 1
但是我使用的语句产生了上面不正确的结果。 这可以通过发出 1 个单一的 oracle select 语句来实现吗?我已经包含了创建整个表的语句。
CREATE TABLE "TESTAVG"
( "KEY" NUMBER,
"VALUE" VARCHAR2(20 BYTE),
"VALUE2" NUMBER
)
Insert into TESTAVG (KEY,VALUE,VALUE2) values (10,'A',12);
Insert into TESTAVG (KEY,VALUE,VALUE2) values (10,'A',13);
Insert into TESTAVG (KEY,VALUE,VALUE2) values (10,'B',1);
Insert into TESTAVG (KEY,VALUE,VALUE2) values (12,'C',20);
【问题讨论】:
-
您如何从“10,A”组的 12 和 13 的 2 个值中获得 0.96 的平均值??
-
然后从查询中删除值。
-
您可以从查询中排除值并按键分组。我猜这就是你要求的。选择 avg(value2),key from testavg group by key
-
OldProgrammer/Oguz:不幸的是,他继续展示他期望的结果..这似乎是按 Key + Value 分组的 .. O.o 并且结果没有多大意义。还不确定他想要什么。 :(
-
@Ditto 是的,您是对的,但是所需的输出与基于参考表描述的问题不匹配。所以,我相信OP没有给出正确的解释。
标签: sql oracle group-by average