我现在有一个表TEST。
字段如下:
MEMBER_ID RESULT RECORD_DATE
1 23.1 2001-1-1
2 11.2 2007-2-3
1 25.1 2002-4-4
1 24.0 2003-9-1
2 13.1 2005-2-2
3 11 2007-10-11
2 15 2008-8-8
3 15 2008-8-1
我想查询出每个会员ID下最近一条记录,结果如下:
MEMBER_ID RESULT RECORD_DATE
1 24.0 2003-9-1
2 15 2008-8-8
3 15 2008-8-1
这个查询语句该怎么写?请教~~
字段如下:
MEMBER_ID RESULT RECORD_DATE
1 23.1 2001-1-1
2 11.2 2007-2-3
1 25.1 2002-4-4
1 24.0 2003-9-1
2 13.1 2005-2-2
3 11 2007-10-11
2 15 2008-8-8
3 15 2008-8-1
我想查询出每个会员ID下最近一条记录,结果如下:
MEMBER_ID RESULT RECORD_DATE
1 24.0 2003-9-1
2 15 2008-8-8
3 15 2008-8-1
这个查询语句该怎么写?请教~~
解决方案 »
- sql 百万级数据库 查询很慢 大神优化下 万分感谢
- Oracle和C#数据类型问题
- sql之神,才能写出的语句; 如果没有sql之神,请高手share存储过程要怎么写?在线等!谢谢!
- 在ORACLE 9I 中的full outer join 为什么在ORACLE 817中编译通不过?
- ORA-08002: 尚未在這個階段作業中定義序列 CS_ADDRESS_SEQ.CURRVAL,一个比较奇怪的现象,请高手指教
- 求一个oracle 外连接的资料
- Oracle9i 怎么解决并发问题???????
- 查询记录排序的问题
- 关于oracle的安装时指定的port的查询
- Oracle Provider for oleDb坏了,怎么办??
- 关于备份的问题
- oracle想通过字段信息查到相关的表
where record_date in in(
select max(record_date)
from test
where member_id = T1.member_id
group by record_date)
SQL> SELECT *
2 FROM TEST T1
3 WHERE NOT EXISTS (
4 SELECT 1
5 FROM TEST T2
6 WHERE T1.MEMBER_ID = T2.MEMBER_ID
7 AND T1.RECORD_DATE < T2.RECORD_DATE
8 ); MEMBER_ID RESULTS RECORD_DATE
---------- ---------- -----------
1 24 9/1/2003
2 15 8/8/2008
3 15 8/1/2008SQL>
where record_date = (
select max(record_date)
from test
where member_id = T1.member_id
)
FROM TEST
WHERE NOT EXISTS (
SELECT 1
FROM TEST T1
WHERE MEMBER_ID = T1.MEMBER_ID
AND RECORD_DATE > T1.RECORD_DATE
)
兄弟很热心呀~呼呼中国多些这种人就好了.
where record_date in(
select max(record_date) from test11 t
group by member_id ) 结果也对呀
from (select MEMBER_ID,
RESULT,
RECORD_DATE,
row_number() over(partition by MEMBER_ID order by RECORD_DATE desc) rn
from test1)
where rn = 1;
如果一个id的员工的非最近的一条记录和另一个id员工的最近的一条记录相等,那就查询出错了!哈哈
FROM TEST
GROUP BY MEMBER_ID,RESUL
from test
group by member_id,result;