首页 新闻 搜索 专区 学院

oracle 帮忙写下Sql语句,取最大值、最新日期数据

0
悬赏园豆:40 [已解决问题] 解决于 2014-09-04 12:57

表1
id a b c
1 上海 嘉定 22
2 上海 闸北 33
3 上海 黄埔 44
4 北京 北京01 11
5 北京 北京02 22
6 北京 北京03 33
7 深圳 深圳01 44
8 深圳 深圳02 55
9 深圳 深圳03 66
10 深圳 深圳04 77

//取最大值结果如下:
3 上海 黄埔 44
6 北京 北京03 33
10 深圳 深圳04 77

表1
id a b c
1 上海 嘉定 2014/1/1
2 上海 闸北 2014/1/2
3 上海 黄埔 2014/1/3
4 北京 北京01 2014/1/4
5 北京 北京02 2014/1/5
6 北京 北京03 2014/1/6
7 深圳 深圳01 2014/1/7
8 深圳 深圳02 2014/1/8
9 深圳 深圳03 2014/1/9
10 深圳 深圳04 2014/1/10
//取最新的数据结果如下:
3 上海 黄埔 2014/1/3
6 北京 北京03 2014/1/6
10 深圳 深圳04 2014/1/10

mkj小陈的主页 mkj小陈 | 初学一级 | 园豆:6
提问于:2014-09-03 17:04
< >
分享
最佳答案
0

第一问:

select *
from table1 t1,( select a,max(c) as c from table1 group by a ) t2
where t1.c=t2.c and t1.a=t2.a;

第二问:

select * 

from table2 t1,(select a,max(c) as c from table2 group by a ) t2 

where t1.c=t2.c and t1.a=t2.a;

收获园豆:19
iGel | 菜鸟二级 |园豆:213 | 2014-09-04 08:20

很不错哦。

mkj小陈 | 园豆:6 (初学一级) | 2014-09-04 12:57
其他回答(4)
0

如果都是按升序排的

这一条语句就够了

select max(id),a,max(b),max(c) from table1 group by a

收获园豆:1
龙卷风摧毁停车场! | 园豆:10 (初学一级) | 2014-09-03 17:25

有问题,,,,

最大值好取,最大值的ID、名字、其他字段也要取出来,

支持(0) 反对(0) mkj小陈 | 园豆:6 (初学一级) | 2014-09-03 17:28

@mkj小陈: 

select * from table1 where id = (select max(id) from table1 group by a)

0

这个问题很多人问过的。唉...

这样的查询问题很多,让不忍细说。算了,直接上SQL

select id, a, b, c from table1 k

INNER JOIN 

(Select a, max(c) as maxc from table1 group by a)L

on K.a=L.a and k.c=L.c

收获园豆:18
爱编程的大叔 | 园豆:30664 (高人七级) | 2014-09-03 17:49
0

第一题和第二题可以采用一种答案:

select id,a,b,c from 
(
select *,row_number() over(partition by a order by c desc) as rId
from 表1
)
where rId=1

 

收获园豆:1
会飞的金鱼 | 园豆:881 (小虾三级) | 2014-09-03 19:25
0

拿到新的数据库不会写语句的时候 可以参考一下别人的,也可以搞一个orm框架 看一下别人自动生成的.

收获园豆:1
望着天的蜗牛 | 园豆:334 (菜鸟二级) | 2014-09-03 21:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册