在线求SQL语句
数据库中 有 name 和 namecode 和 thetime 三个字段
要求:
当 数据表中 的列中 name 和 namecode 都相同时 , 按 thetime 时间 最大的 取一条。
就是 去除 两条 或多条 重复的 列 中的一列 。
*********************************************************************************
例如: name namecode thetime
11 aa 20141030
22 bb 20141030
22 bb 20141029
*********************************************************************************
此时 ,只要 去除 重复列 22 bb 20141029 (重复列可能多条,只留一条)
其他的都保留 ,在线等 ,多谢各位大牛!
------解决思路----------------------
这个方法太多了吧
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
先写三种吧