抱歉,TITLE不够具体。我将尝试解释:我是SQL的新手。我在工作,并写了一个查询,该查询有9列,可从许多表中获取信息。第9列是机器类型的名称,第3列是代表一台机器工作一个月的时间的值。我需要添加第10列,该列将针对每种类型的计算机,该类型的最大值为3列。假设有5台XR类型的机器(表中的5行),其时间(第3列)为1,2,3,4,5(以小时为单位)。我需要在第10列中,计算机类型为XR的所有行的值都为5,因为这是该类型计算机的最大值。
我怎么做?
任何帮助将不胜感激!
在SQL Server,Oracle并且PostgreSQL:
SQL Server
Oracle
PostgreSQL
SELECT *, MAX(col3) OVER (PARTITION BY col9) FROM mytable
在MySQL:
MySQL
SELECT mt.*, maxcol3 FROM ( SELECT col9, MAX(col3) AS maxcol3 FROM mytable ) q JOIN mytable mt ON mt.col9 = q.col9