在SQL中,如何聚合表内的字段

时间:2012-05-02 10:37:24

标签: sql oracle aggregate max

对不起TITLE并不那么具体。我会试着解释一下: 我是SQL的新手。我在工作并写了一个查询,其中有9列从许多表中获取信息。 第9列是机器类型的名称,第3列是表示机器在一个月内工作的时间的值。 我需要为每种类型的机器添加第10列,此类型的最大第3列。 假设有5台XR型机器(表中5行),时间(第3列)为1,2,3,4,5(小时)。我需要在第10列,所有机器类型为XR的行将具有值5,因为它是此类机器的最大值。

我该怎么做?

任何帮助都将非常感谢!!

1 个答案:

答案 0 :(得分:6)

SQL ServerOraclePostgreSQL

SELECT  *, MAX(col3) OVER (PARTITION BY col9)
FROM    mytable

MySQL

SELECT  mt.*, maxcol3
FROM    (
        SELECT  col9, MAX(col3) AS maxcol3
        FROM    mytable
        ) q
JOIN    mytable mt
ON      mt.col9 = q.col9