2008年10月1日水曜日

[他]SQLで最小値の一覧を取得する

先日@itを見ていると、「キー値が同一のとき、キー以外の値が最小のデータを効率よく取得するには」という話題が挙がりました。

で、私が思いつく方法といえば、サブクエリで最小値の一覧を取得しその値の一覧を連結するという方法です。コードはこんなかんじ(手打ち未検証)。

SELECT 
     key
    ,code
    ,value1
    ,value2 
FROM table1
WHERE
(key,codeIN (SELECT key ,MIN(codeFROM table1 GROUP BY key,code)


このほかにINNER JOINする方法を思いつきました。
しかし、このスレッドでは私が思いついた方法以外の方法が紹介されていました。おそらく私の思いついた方法はコストが高いと思います。集計関数を使わずにできるとは。。。いやー勉強になりますねぇ。

0 件のコメント: