我有以下查询:
SELECT A.F01 AS F01, P.F31 AS F31, P.F30 AS F30, C.F19 AS F19, C.F38 AS F38
FROM A_TAB A
LEFT OUTER JOIN P_TAB P ON P.F01=A.F01
LEFT OUTER JOIN C_TAB C ON C.F01=A.F01
ORDER By 1;
显示如下:
f01 f31 f30 f19 f38
0000000000001 1 2.99 100 0.50
0000000000002 1 0.10 1 0.05
0000000000002 1 0.10 1 0.05
0000000000003 1 0.20 20 1.00
0000000000003 1 0.20 36 0.35
0000000000004 1 0.30 1 1.00
0000000000005 1 0.60 23 NULL
0000000000005 1 0.60 23 1.25
0000000000006 1 0.90 11 2.50
0000000000006 1 0.90 2 1.00
最后两行在coloumn 1(f01)中有0000000000006,在最后一列(f38)中有两个后续值2.50和1.00, 我只需要获得具有最大值的一行 (最大2.50和1.00)
请你能帮助我吗?当我在f38专栏中使用max with group by并且已经达到了死胡同时,我一直都会遇到错误。 :( :(
答案 0 :(得分:1)
使用group by
和max()
:
SELECT A.F01 AS F01, P.F31 AS F31, P.F30 AS F30, MAX(C.F38) AS F38
FROM A_TAB A LEFT OUTER JOIN
P_TAB P
ON P.F01=A.F01 LEFT OUTER JOIN
C_TAB C
ON C.F01=A.F01
GROPU BY A.F01, P.F31, P.F30
ORDER By 1;
我删除了F19
,因为您没有说明如何处理它。