0

テーブルがあるとします

-----------------------------------------------
| | ID | 値1 | 値2 | 値3 |
 -----------------------------------------------
| | 102 | 10 | 1 | 3 |
 -----------------------------------------------
| | 102 | 2 | 11 | 0 |
 -----------------------------------------------
| | 102 | 0 | 9 | 13 |
 -----------------------------------------------
| | 102 | 3 | 5 | 7 |
 -----------------------------------------------

そして、個別のIDごとに、列value1、value2、およびvalue3に最大値を持つ行を返したい、つまり

-----------------------------------------------
| | ID | 値1 | 値2 | 値3 |
 -----------------------------------------------
| | 102 | 10 | 11 | 13 |
 -----------------------------------------------

(もちろんテーブルには102以外のidもある)

「partition by」でなんとかできましたが、問題はそれをpowerbuilderのデータウィンドウで使用する必要があり、そこに貼り付けるとすぐにIDE全体がクラッシュし、プロジェクトが破損することです。

各行に対して、すべての列の最大値を返す選択で3つの内部結合を行うSQLを作成することができました。

他に簡単な方法はありますか?

答えてくれてありがとう!

4

2 に答える 2

3

使用GROUP BYしてMAX()

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 に答える