表tt,有id,a,b 3列
a b id
1 1 1
1 2 2
2 1 3
2 2 4
3 1 5
4 1 6求如下结果集
a b id
1 2 2
2 2 4
3 1 5
4 1 6用一条select语句实现,我不想使用存储过程和临时表,这样可以吗?求大家帮忙看看!
a b id
1 1 1
1 2 2
2 1 3
2 2 4
3 1 5
4 1 6求如下结果集
a b id
1 2 2
2 2 4
3 1 5
4 1 6用一条select语句实现,我不想使用存储过程和临时表,这样可以吗?求大家帮忙看看!
GROUP BY A;
2 UNION
3 SELECT 1 A,2 B,2 ID FROM DUAL
4 UNION
5 SELECT 2 A,1 B,3 ID FROM DUAL
6 UNION
7 SELECT 2 A,2 B,4 ID FROM DUAL
8 UNION
9 SELECT 3 A,1 B,5 ID FROM DUAL
10 UNION
11 SELECT 4 A,1 B,6 ID FROM DUAL
12 )
13 select A,B,ID FROM (SELECT A,B,ID,ROW_NUMBER()OVER(PARTITION BY A ORDER BY B DESC) RN FROM A) A
14 WHERE RN=1
15 /
A B ID
---------- ---------- ----------
1 2 2
2 2 4
3 1 5
4 1 6
a b id
1 1 2
1 2 1
2 1 3
2 2 4
3 1 5
4 1 6
则回得到
a b id
1 2 2
2 2 4
3 1 5
4 1 6
就不是这行记录了