0

假设我有一张桌子

-----------------------------------------------------------
| 编号 | 值1 | 值2 | 价值3 |
 -----------------------------------------------------------
| 102 | 10 | 1 | 3 |
 -----------------------------------------------------------
| 102 | 2 | 11 | 0 |
 -----------------------------------------------------------
| 102 | 0 | 9 | 13 |
 -----------------------------------------------------------
| 102 | 3 | 5 | 7 |
 -----------------------------------------------------------

对于每个不同的 id,我想在 value1、value2 和 value3 列中返回具有最大值的行,即

-----------------------------------------------------------
| 编号 | 值1 | 值2 | 价值3 |
 -----------------------------------------------------------
| 102 | 10 | 11 | 13 |
 -----------------------------------------------------------

(当然表中还有102以外的其他id)

我设法通过“分区”来做到这一点,但问题是我必须在 powerbuilder 的数据窗口中使用它,一旦我将它粘贴到那里,整个 IDE 崩溃并且项目被损坏。

我设法创建了一个 sql,它为每一行执行 3 个内部连接,选择返回每列的最大值。

还有其他更简单的方法吗?

提前感谢您的回答!

4

2 回答 2

3

使用GROUP BYMAX()

SELECT  id,
        MAX(value1) val1,
        MAX(value2) val2,
        MAX(value3) val3
FROM    tableName
GROUP   BY ID
于 2013-03-08T16:27:01.753 回答
1
SELECT id, MAX(value1) value1, MAX(value2) value2, MAX(value3) value3
FROM yourtable
GROUP BY id
于 2013-03-08T16:27:10.147 回答