是这样的 首先我希望这个查询 是一条语句解决 A表中 有4个字段 分别是 NAME,PHONE,JIFEN,DATE有50行数据 分别是4个人的每个人肯能会有很多行数据 但是唯一不重复的是JIFEN 我现在希望查询到 每个人不重复的数据 也就是说应该是四条数据 并且 JIFEN 要取每个人的最后一条 比如:
name phone jifen dateA 123 110 2012-02-29
A 123 100 2012-02-29
A 123 90 2012-02-29
A 123 120 2012-02-29
B 123 110 2012-02-29
B 123 110 2012-02-29
B 123 160 2012-02-29
C 123 110 2012-02-29
...
D 123 110 2012-02-29
...查询完之后的结果是 name phone jifen date
A 123 120 2012-02-29
B 123 160 2012-02-29
C...
D...不知道这样说大家是否能够看懂,日期这列没有小时分钟 只精确到日期
name phone jifen dateA 123 110 2012-02-29
A 123 100 2012-02-29
A 123 90 2012-02-29
A 123 120 2012-02-29
B 123 110 2012-02-29
B 123 110 2012-02-29
B 123 160 2012-02-29
C 123 110 2012-02-29
...
D 123 110 2012-02-29
...查询完之后的结果是 name phone jifen date
A 123 120 2012-02-29
B 123 160 2012-02-29
C...
D...不知道这样说大家是否能够看懂,日期这列没有小时分钟 只精确到日期
解决方案 »
- oracle10g的安装问题
- 求救 oracle11g r2 服务起不来,数据恢复问题
- 一个有关SQL效率的问题?
- 关于触发器,为什么跟其他代码写在一个文件PL/SQL SQL WINDOW里就报错呢?分开就又对了
- 急求一sql写法,谢谢!!!
- 求教一个sql的写法。:)只有20分了。。。别嫌少
- imp将150万条数据导入一个表时,提示创建表错误,不知道怎样解决。
- oracle链接sqlserver操作问题?
- ADO 连接Oracle 时 Provider 该怎样设置?
- dbms_xdb.CreateFolder/DBMS_XDB.createResource 使用問題
- EXP导出文件命名日期格式,显示星期四.dmp
- 跪求:dataadapter能否将更新后的列信息返回给数据库
如果出现两行完全一样的数据那就不合理了(因为日期只精确到日),出现冗余了,如果需要在进行重复过滤查询。
SELECT NAME,
PHONE,
JIFEN,
DATE
FROM (SELECT NAME,
PHONE,
JIFEN,
DATE,
ROW_NUMBER () OVER (PARTITION BY NAME ORDER BY jifen DESC)
rn
FROM A)
WHERE rn = 1
SELECT NAME,
PHONE,
JIFEN,
DATE
FROM (SELECT NAME,
PHONE,
JIFEN,
DATE,
ROW_NUMBER () OVER (PARTITION BY NAME ORDER BY DATE desc,seq(序号) DESC)
rn
FROM A)
WHERE rn = 1