对不起TITLE并不那么具体。我会试着解释一下: 我是SQL的新手。我在工作并写了一个查询,其中有9列从许多表中获取信息。 第9列是机器类型的名称,第3列是表示机器在一个月内工作的时间的值。 我需要为每种类型的机器添加第10列,此类型的最大第3列。 假设有5台XR型机器(表中5行),时间(第3列)为1,2,3,4,5(小时)。我需要在第10列,所有机器类型为XR的行将具有值5,因为它是此类机器的最大值。
我该怎么做?
任何帮助都将非常感谢!!
答案 0 :(得分:6)
在SQL Server
,Oracle
和PostgreSQL
:
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