很抱歉标题不是那么具体。我会试着解释:
我是 SQL 的新手。我正在工作并编写了一个查询,该查询有 9 列,可以从许多表中获取信息。
第 9 列是机器类型的名称,第 3 列是表示机器在一个月内工作的时间的值。
我需要为每种类型的机器添加第 10 列,这种类型的最多第 3 列。
假设有 5 台 XR 类型的机器(表中的 5 行),时间(第 3 列)为 1、2、3、4、5(以小时为单位)。我需要在第 10 列中,机器类型为 XR 的所有行的值都为 5,因为它是此类机器的最大值。
我怎么做?
任何帮助将不胜感激!
最佳答案
在 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
关于sql - 在 SQL 中,如何聚合表内的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10412033/