在线求SQL语句

兔子侠客 2014-10-30 09:34:55
在线求SQL语句

数据库中 有 name 和 namecode 和 thetime 三个字段

要求:

当 数据表中 的列中 name 和 namecode 都相同时 , 按 thetime 时间 最大的 取一条。

就是 去除 两条 或多条 重复的 列 中的一列 。

*********************************************************************************
例如: name namecode thetime
11 aa 20141030
22 bb 20141030
22 bb 20141029
*********************************************************************************
此时 ,只要 去除 重复列 22 bb 20141029 (重复列可能多条,只留一条)

其他的都保留 ,在线等 ,多谢各位大牛!


...全文
120 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-10-30
  • 打赏
  • 举报
回复
这个方法太多了吧 1、
select * from T T1
WHERE NOT EXISTS(SELECT 1 FROM T WHERE name=T1.name and namecode=T1.namecode AND thetime>T1.thetime)
2、
select name,namecode,max(thetime) thetime
from T
GROUP BY name,namecode
3、
select name,namecode,thetime
from(select T.*,row_number()over(partition by name,namecode order by thetime desc) RN)
WHERE RN=1
先写三种吧
兔子侠客 2014-10-30
  • 打赏
  • 举报
回复
我写出来了 大家 看下

select max(ts) as maxtime,t.name ,t.namecode  from table1  t 
where exists(Select * from cr_table1    where name = t.name and namecode  = t.namecode  )
 group by ts,t.name ,t.namecode  ;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧