数据库的检索问题col1 col2 col3 col4 col5 1 1 1 a 101 1 1 b 202 2 2 a 302 2 2 a 402 2 2 a 503 3 3 c 603 3 3 d 704 4 4 m 804 4 4 m 905 5 5 m 100想要的结果就是col1,col2,col3列相等的场合,如果col4不同的话,就取对应的最后
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 01:03:36
数据库的检索问题col1 col2 col3 col4 col5 1 1 1 a 101 1 1 b 202 2 2 a 302 2 2 a 402 2 2 a 503 3 3 c 603 3 3 d 704 4 4 m 804 4 4 m 905 5 5 m 100想要的结果就是col1,col2,col3列相等的场合,如果col4不同的话,就取对应的最后
数据库的检索问题
col1 col2 col3 col4 col5
1 1 1 a 10
1 1 1 b 20
2 2 2 a 30
2 2 2 a 40
2 2 2 a 50
3 3 3 c 60
3 3 3 d 70
4 4 4 m 80
4 4 4 m 90
5 5 5 m 100
想要的结果就是col1,col2,col3列相等的场合,如果col4不同的话,就取对应的最后一条数据.如果col4相同的话,就取第一条数据
预想的结果
col1 col2 col3 col4 col5
1 1 1 b 20
2 2 2 a 30
3 3 3 d 70
4 4 4 m 80
5 5 5 m 100
数据库的检索问题col1 col2 col3 col4 col5 1 1 1 a 101 1 1 b 202 2 2 a 302 2 2 a 402 2 2 a 503 3 3 c 603 3 3 d 704 4 4 m 804 4 4 m 905 5 5 m 100想要的结果就是col1,col2,col3列相等的场合,如果col4不同的话,就取对应的最后
下面的只考虑每个分组的数据中col4和col5都是同升序排列的:
select
col1,
col2,
col3,
case when count(distinct col4)>1 then max(col4) else min(col4) end col4,
case when count(distinct col4)>1 then max(col5) else min(col5) end col5
from
tab
group by
col1,col2,col3