Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
很抱歉,标题不是那么具体。我将尝试解释:我是 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