2017-11-25 175 views
0
select numeric_value 
from table 
where numeric_value > 
(select avg(numeric_value) 
from table 
group by id) 

由于此where子句返回多个值无法执行。我试图只返回一个值...来说明,如果e.numeric_value> d.avg(numeric_value)和e.id = d.id.这是在oracle数据库中。从Select子语句中返回特定Group By条件

+1

外部查询根本不使用ID ...我没有得到你想要获得的内容。你可以添加例子吗? – Damiano

+0

尝试使用'EXISTS'子句子查询来使用两个条件。也就是说,我不希望这种方式返回一个结果。 –

+0

为了澄清,我想获得大于数字值的平均值的数值。每个numeric_value都有一个id,我想添加那些匹配id的那些,然后返回大于那些匹配id的平均值的numeric_values。所以如果2 4 6是我的值,他们的id是1 2 1.我期望返回6和1.因为6> avg(2,6) – ccbrantley

回答

1

所以如果2 4 6是我的价值观和他们的ID是1 2 1。我希望回到6和1 6以来> AVG(2,6)

你可以使用相关子查询:

select numeric_value 
from table t1 
where numeric_value >(select avg(numeric_value) 
         from table t2 
         WHERE t1.id = t2.id); 

DBFiddle Demo

注:您的设计看起来不知何故错误,ID应该是唯一的(或者它仅仅是标签编辑不正确为id)。