关于如何只取得每组数据中的一个最大值的问题?

 create table topic
(
Topicid
int,
title
nvarchar(10),
boardid
int,
addtime
datetime  
)
insert topic select
  
1,       'abc',       100,     '2007-1-1' 
union all select   2,       'era',       101,     '2007-1-2' 
union all select   3,       'avx',       102,     '2007-1-3' 
union all select   4,       'zcv',       100,     '2007-1-4' 
union all select   5,       'jhv',       100,     '2007-1-5' 
union all select   6,       'ztw',       103,     '2007-1-6' 
union all select   7,       'xcv',       102,     '2007-1-7' 
union all select   8,       'zww',       104,     '2007-1-8' 
union all select   9,       'zqw',       105,     '2007-1-9' 
union all select   10,      'zti',       103,     '2007-1-10' 

--取得boardid相同的每组数据日期最大值:

select top 5 *
from topic as tmp
where not exists(select * from topic where boardid=tmp.boardid and addtime>tmp.addtime) order by addtime desc
--result 相同boardid,addtime最大的数据
Topicid     title      boardid     addtime                                               
----------- ---------- ----------- ------------------------------------------------------
10          zti        103         2007-01-10 00:00:00.000
9           zqw        105         2007-01-09 00:00:00.000
8           zww        104         2007-01-08 00:00:00.000
7           xcv        102         2007-01-07 00:00:00.000
5           jhv        100         2007-01-05 00:00:00.000

(所影响的行数为
5 行)

 

select a.* from topic a,
(
  select boardid,max(addtime)as addtime from topic group by boardid
)b
where a.boardid=b.boardid and a.addtime=b.addtime
order by a.boardid

--result 相同boardid,addtime最大的数据
Topicid     title      boardid     addtime       

5              jhv          100          2007-01-05 00:00:00.000
2              era         101          2007-01-02 00:00:00.000
7              xcv          102          2007-01-07 00:00:00.000
10            zti           103          2007-01-10 00:00:00.000
8              zww       104          2007-01-08 00:00:00.000
9              zqw        105          2007-01-09 00:00:00.000

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值