3

很抱歉,标题不是那么具体。我将尝试解释:我是 SQL 新手。我在工作并编写了一个查询,它有 9 列从许多表中获取信息。第 9 列是机器类型的名称,第 3 列是表示机器一个月工作时间的值。我需要为每种类型的机器添加第 10 列,这种类型的最大第 3 列。假设有 5 台 XR 类型的机器(表中的 5 行),时间(第 3 列)为 1、2、3、4、5(以小时为单位)。我需要在第 10 列,机器类型为 XR 的所有行都将具有值 5,因为它是此类机器的最大值。

我怎么做?

任何帮助将不胜感激!

4

1 回答 1

6

SQL Server,OraclePostgreSQL:

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
于 2012-05-02T10:39:52.063 回答