关于如何只取得每组数据中的一个最大值的问题?
2007-10-01 13:38
706 查看
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
(
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
相关文章推荐
- 向大家请教一个关于sharepoint2003的问题,如何使一个Custom List in Datasheet View中某个field从其他list抽取数据当显示时?
- 建站或者网站搬家换空间的时候,企业站长最关心的一个问题是该如何选择网站空间,而这一问题对于一些擅长的站长来说非常小意思,但对于部分企业站长来说是一个比较头疼的问题。根据不完整数据显示,很多企业站长因为
- 关于PDO取得结果集的数据类型为string的问题
- 如何设计数据仓库?粒度问题是一个最重要方面!
- TOP N的一些问题,可以实现取得表中最大的一行ID的数据。
- 关于基本数据类型转换的一个小问题
- 终于解决了一个问题--如何在数据绑定时不让combox控件触发SelectedIndexChanged事件
- 关于C++/C 输入一行整型数据,数量不定问题,如何读入
- 关于“Hibnerate报数据大小超出此类型的最大值”问题【已解决】
- 关于unity动态添加游戏对象问题,如何动态添加一个菜单【一】
- 关于jqplot同一个div重用,导致数据重复问题
- <项目一>请教一个关于获取post json数据的问题
- 关于如何修改ISA并行最大TCP连接数问题
- 关于如何初始化一个类内的静态二维数组变量问题
- PCL:关于pcd数据显示的一个小问题
- 关于如何实现双击某一个tabBarItem,自动进行下拉刷新的问题。
- 关于MySQL的TinyInt数据类型在Delphi中作为Boolean类型的一个要注意的问题
- 关于多个异步任务线程如何取消上一个线程的问题
- 关于在Sqlite3中如何判断数据表返回的结果集是否为空的问题解决
- 一个关于数据类型的问题