2013-03-08 43 views
0

假設我有一個表SQL從多行合併最大值

 
----------------------------------------------- 
| id | value1 | value2 | value3 | 
----------------------------------------------- 
| 102 |  10  |  1  |  3  | 
----------------------------------------------- 
| 102 |  2  |  11 |  0  | 
----------------------------------------------- 
| 102 |  0  |  9  |  13  | 
----------------------------------------------- 
| 102 |  3  |  5  |  7  | 
----------------------------------------------- 

,併爲每個不同的ID我想在列值1,值和值3最大值返回一行,即

 
----------------------------------------------- 
| id | value1 | value2 | value3 | 
----------------------------------------------- 
| 102 |  10  |  11  |  13  | 
----------------------------------------------- 

(當然還有其他的IDS比102表)

我設法用「的分區」做,但問題是,我在PowerBuilder的DataWindow的使用它,只要我貼它在那裏整個IDE崩潰和項目被損壞。

我設法創建一個sql,爲每行做3個內部連接,並返回每列最大值的選擇。

還有其他更簡單的方法嗎?

在此先感謝您的回答!

+1

請註明您是通過添加適當的標籤針對RDBMS(甲骨文,SQL服務器,MySQL的,等等) 。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過使用特定的RDBMS標記它,您的問題可能會得到更適合回答的人的關注。 – Taryn 2013-03-08 16:25:58

回答

3

使用GROUP BYMAX()

SELECT id, 
     MAX(value1) val1, 
     MAX(value2) val2, 
     MAX(value3) val3 
FROM tableName 
GROUP BY ID 
1
SELECT id, MAX(value1) value1, MAX(value2) value2, MAX(value3) value3 
FROM yourtable 
GROUP BY id