我无法在SQL中获得max函数

时间:2014-11-16 02:59:42

标签: sql sql-server group-by max

我有以下查询:

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并且已经达到了死胡同时,我一直都会遇到错误。 :( :(

1 个答案:

答案 0 :(得分:1)

使用group bymax()

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,因为您没有说明如何处理它。