oracle多条数据只保留一条
病人的检验结果,pat_id是病人id,我想查病人的血小板检验结果,一个病人可能有对应多个,而且结果值基本不同,例如这个病人1234有4个血小板结果值,1,2,3,4;我只想要去一条,用distinct的话,只能是针对所有字段都相同才能去重,用row_number可以先排序再取,用下列语句查询很快,但是不是单独查一个病人的,是有很多病人的数据的,我把语句创建成视图,带入pat_id条件去查,结果是会先把所有的结果分组排序再根据带入条件返回。
最终目的:我想通过视图,通过带入病人id条件,查询病人的检验结果,每种只取一条
SELECT
T1.PAT_ID,
T2.RESULT_CODE,
T2.RESULT_NAME,
T2.RESULT
Row_Number() OVER(partition by t2.RESULT_CODE ORDER BY t2.RESULT desc) as rank
FROM test T1,test_result t2
WHERE to_char(T1.id) = T2.id and t2.RESULT_NAME in('血小板',‘红细胞’)
and t1.pat_id='1234'