假设我有一张桌子
----------------------------------------------- | id | value1 | value2 | value3 | ----------------------------------------------- | 102 | 10 | 1 | 3 | ----------------------------------------------- | 102 | 2 | 11 | 0 | ----------------------------------------------- | 102 | 0 | 9 | 13 | ----------------------------------------------- | 102 | 3 | 5 | 7 | -----------------------------------------------
并且对于每个不同的id,我想在列value1,value2和value3中返回一个最大值的行,即
----------------------------------------------- | id | value1 | value2 | value3 | ----------------------------------------------- | 102 | 10 | 11 | 13 | -----------------------------------------------
(当然桌子上还有102个以外的其他ID)
我设法用“分区依据”来做,但问题是我必须在powerbuilder的数据窗口中使用它,一旦我将它粘贴在那里整个IDE崩溃并且项目被破坏。
我设法创建了一个sql,每行有3个内连接,其中选择返回每列的最大值。
还有其他更简单的方法吗?
提前感谢您的回答!
答案 0 :(得分:3)
使用GROUP BY
和MAX()
SELECT id,
MAX(value1) val1,
MAX(value2) val2,
MAX(value3) val3
FROM tableName
GROUP BY ID
答案 1 :(得分:1)
SELECT id, MAX(value1) value1, MAX(value2) value2, MAX(value3) value3
FROM yourtable
GROUP BY id