0

第一个查询

    select b.id , b.value,b.name from table_1 b where b.id = 900;

结果:

  id     value    name
 900     5027      AA
 900     79426     BB   
 900     132276    CC
 900     302885    DD

第二个查询

select a.id , max(a.value) from table_1 a where a.id = 900 group by a.id ;

结果

 id     value
900     302885

现在我想要这样的结果

  id      value   name
  900     302885    DD

提前致谢...

4

3 回答 3

1

使用您的第一个查询,但在 where 子句中选择您想要的值...这可以通过使用 select MAX() 语句来完成

select b.id , b.value,b.name 
from table_1 b 
where b.id = 900 and 
b.value = (
    select max(a.value) from table_1 a where a.id = 900 group by a.id
)
于 2013-06-18T10:23:38.063 回答
1

尝试这个,

select * 
from Table1 t1 
where t1.value=(select MAX(value) 
                from Table1 t2 
                where t1.id=t2.id) 
AND t1.id=900; 

SQLFiddle 演示

于 2013-06-18T10:29:38.713 回答
0
SELECT * FROM table_1 t
WHERE value = (SELECT MAX(value) FROM table_1 s WHERE t.id = s.id)
AND t.id = 900

如何做到这一点的其他示例可以在手册条目The Rows Hold the Group-wise Maximum of a certain Column中找到。

看到它在sqlfiddle中工作。

于 2013-06-18T10:22:06.260 回答