SQL语句 如何取最后一次的值?[或者说如何取某个字段最大数值及其相应行的其他字段值]

如下表Z中,取字段a最大的那行字段a字段a字段cSP000016964520SP000016964730SP000016964115SP000017755416SP000... 如下表Z 中,取 字段a 最大的那行

字段a 字段a 字段c
SP000016964 5 20
SP000016964 7 30
SP000016964 1 15

SP000017755 4 16
SP000017755 8 12
最后得到下面结果
SP000016964 7 30
SP000017755 8 12
展开
 我来答
tianhxk
2012-03-03 · TA获得超过422个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:281万
展开全部
字段a 字段b 字段c
SP000016964 5 20
SP000016964 7 30
SP000016964 1 15

SP000017755 4 16
SP000017755 8 12
最后得到下面结果
SP000016964 7 30
SP000017755 8 12
--用如下语句即可
select z.* from z, (select a,max(b) as max_b from z group by a) z1
where z.a = z1.a and z.b = z1.max_b
但是如果出现如下情况下话,可能数据就有问题了,即第2个字段有多个相同的最大值,这个时候规则会变的复杂,如果是oracle数据库的话,可以考虑oracle的分析函数来搞定
SP000016964 5 20
SP000016964 7 30
SP000016964 7 15
flyingFish211
2012-03-01 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
字段a 字段a 字段c
--->字段1 字段a 字段c

select *
from Z t
where not exists(select 1 from Z where 字段1 = t.字段1 and 字段a > t.字段a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2012-03-01 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:841万
展开全部
写个嵌套吧
select * from table where 字段a=(select max(字段a) from table )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ginban
2012-03-01 · TA获得超过131个赞
知道答主
回答量:126
采纳率:0%
帮助的人:129万
展开全部
怎么会有两个字段a ,写错了吧
select * from 表 where 字段b in (select max(字段b) from 表 group by 字段a )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式