2011-07-15 21 views
3

これで大規模なSQL文を扱っていますが、他の場所で修正が見つからないという問題が発生しました。私はCOL_1から一意の値を持つすべての行を選択したいが、私は重複に遭遇したとき、私は重複のどれを決定するためにcol_2を使用する必要がMySQL:値が同じときにどの行を選択する

col_1  |  col_2  |  col_3 
    100  | default |  Hello 
    500  | default |  World 
    500  | override |  Other 

:私は、私が現在持っているもの簡略化する場合は、同様にテーブルを取ります使用する。

上記からcol_3の値を選択した場合、私は 'Hello'と 'Other'を取得します。

私はDISTINCTがほしいと思うものを手に入れていますが、いくつかのグループ化と順序付け方法を試しましたが、グルーピングが最初に計算されるので、それは答えではないようです。

+0

あなたはcol_2またはCOL_1で重複をたくありません?クエリの戻り値として行1と行2も受け入れますか? –

+0

col_1またはcol_2に重複が必要なのではありませんが、重要な部分はcol_2の 'override'が 'default'よりも優先されるように定義する必要があることです。したがって、行1と2は行1と3だけでは受け入れられません –

答えて

1

あなたは、サブクエリでORDER BY、その後GROUP BYを試みることができる:

SELECT * FROM 
     (SELECT * FROM table ORDER BY col_1 DESC) 
GROUP BY col_2 
関連する問題