一个sql语句 分组查询的 急盼 解决(30分)

  • 主题发起人 主题发起人 xiaoma224
  • 开始时间 开始时间
X

xiaoma224

Unregistered / Unconfirmed
GUEST, unregistred user!
select max(时间) from 表名 group by 唯一编号: 为何每组返回多条记录而不是时间最大的唯一条记录 很是苦恼! 急盼朋友帮忙解决! 我实现的目标是 按某列分组 只选择每组中时间列为最大值的一条记录! 比如共有8条记录按编号分组 有2组 我要每组中的时间列为最大的一条记录 选择的正确结果应为2条记录 而我却得到>2条记录! 时间列为vchar2 字符型! 唯一编号 是数值型! 感觉很简单的分组 求每组中符合时间列为最大一条记录!
 
你写的SQL好像是求每一组同样编号的数据记录中的最大时间?看不太明白,能不能写几个数据样本和你期望的结果出来?
 
数据库表记录为 距离 时间 唯一编号
23 20060809122556 1
24 20060809125056 1
35 20060809125959 1
33 20060809115655 2
34 20060809125659 2
选择后的结果为2条记录
35 20060809125959 1
34 20060809125659 2
如何写个分组的sql语句 ?????? select.................
 
select 唯一编号,max(时间) from 表名 group by 唯一编号

经Access测试没问题,SQL暂时不用,没装
 
select top 1 * form 表名 order by 时间字段 desc
 
我觉得有个问题,如果是唯一编号,怎么可能出现相同的记录呢?
23 20060809122556 1
24 20060809125056 1
35 20060809125959 1
这种情况根本就不存在啊?
 
SELECT * FROM 表名 WHERE 唯一编号=(SELECT 唯一编号 FROM 表名 WHERE ROWNUM=1 ORDER BY 时间 DESC)
 
如果我没猜错的话,你的距离和时间应该是成比例的吧,取时间最大值的同时也应是距离的最大值
select max(juli),max(shijian),bianhao from aa group by bianhao
对于普遍的:
select A.* from aa as A , (select max(shijian) as shijian, bianhao from aa group by bianhao) as B where A.bianhao = B.bianhao and A.shijian = B.shijian
 
就是因为你没规定距离!你或者求合或者求最大,你得有条件!不然就别查它也行!
 
select A.* from Tb A , (select max(时间) 时间, 唯一编号 from tb group by 唯一编号) B where A.唯一编号 = B.唯一编号 and A.时间 = B.时间
 
大家 理解错了 我的距离 只是个普通列 表示还有别的几列意思 和时间列没有关系! 不能用时间排序的方法 否则我几万条记录会很慢的! 最好用分组 ! 意思其实就是求每组记录中时间列为最大的! 记录有很多列 其中有时间列 也有分组的那列 ! 比如按编号分 按商品种类分!
 
后退
顶部