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

转载 2007年10月01日 13:38:00

 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

 


SQL分组求每组最大值问题的解决方法收集

本文转自http://blog.sina.com.cn/s/blog_464f6dba0100orvf.html,所有权力归原作者所有。 例如有一个表student,其结构如下: id     ...
  • sdujava2011
  • sdujava2011
  • 2015年09月30日 15:52
  • 1039

Mongo分组取每组最大的一条记录

使用Spring-data-mongo统计每个班级最高成绩 Criteria criteria = Criteria.where("classId").in(classIds); GroupO...
  • Truong
  • Truong
  • 2017年11月06日 17:18
  • 352

mysql中使用sql找出每组当中最大的那条数据

统计每组中平均执行时间最长的URL的数据 写法一: select A.url,A.count,A.sumtime,A.avgtime,A.addtime from baas_system_log ...
  • hblfyla
  • hblfyla
  • 2016年07月29日 10:49
  • 1515

ACM中关于最大值的选取

原博文:  http://blog.csdn.net/hnust_xiehonghao/article/details/8223104 如果问题中各数据的范围明确,那么无穷大的设定不是问...
  • hnust_taoshiqian
  • hnust_taoshiqian
  • 2015年06月25日 19:51
  • 477

利用sql查询每组第一个数据

本文章来至源码世界 http://www.ymsky.net/views/111572.shtml 今天在一个.NET群里看到有个人问如何查找到每组第一个人的全部信息,当时自己也在忙着...
  • long7181226
  • long7181226
  • 2014年04月11日 15:49
  • 2994

mysql获取分组后每组的最大值

1. 测试数据库表如下: create table test ( `id` int not null auto_increment, `name` varchar(20) not null de...
  • u011734144
  • u011734144
  • 2016年07月21日 13:55
  • 12627

关于多组数据连续输入,求最大值最小值问题

题目介绍如下。 自己写的代码可以解决根据输入的数字个数和数字判断最大值最小值问题,但是我在处理多组数据连续输入的时候,实在处理不好,另外最大值最小值的判断是使用的函数,使得整个程序内存和运行时间都不...
  • wyh7280
  • wyh7280
  • 2015年01月24日 13:04
  • 724

求5个数的最值

//求5个数的最值 //描述 设计一个从5个整数中取最小数和最大数的程序 //输入输入只有一组测试数据,为五个不大于1万的正整数输出输出两个数, //第一个为这五个数中的最小值,第二个为这五个数中的最...
  • wwj_748
  • wwj_748
  • 2012年03月12日 19:41
  • 1717

Postgresql SQL 选择每组的前面几条记录

Postgresql SQL 选择每组的前面几条记录
  • moliqin
  • moliqin
  • 2016年11月02日 10:34
  • 855

分组查询后得到每组中的第一条数据

表clgl_clbzqk  xh,dwxh,clbzhdrq xh表示 序号  dwxh表示单位序号 clbzhdrq表示核定时间 xh是主键,目的是按dwxh分组,然后得到最近的一次...
  • zheng0518
  • zheng0518
  • 2013年09月13日 11:35
  • 2177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于如何只取得每组数据中的一个最大值的问题?
举报原因:
原因补充:

(最多只允许输入30个字)