ある列の値または別の列の値のいずれかがある結果セットから行を削除する最良の方法を理解しようとしています。結果セットの複製。SQL理論:ある列の重複を除外し、他の列で最も低い値を取り出す
次のようにクエリの結果は想像:
a_value | b_value
-----------------
1 | 1
2 | 1
2 | 2
3 | 1
4 | 3
5 | 2
6 | 4
6 | 5
私が何をしたいです:
- がa_value
- に重複する値を持つすべての行が1行のみを選択してください排除します指定されたb_valueについて
だから、私はこのように終わるようにフィルタリングされた結果を望んでいますa_value重複をなくしTER:
a_value | b_value
-----------------
1 | 1
3 | 1
4 | 3
5 | 2
そして、このように一つだけb_value摘み後:
a_value | b_value
-----------------
1 | 1
4 | 3
5 | 2
を私はSQLを介した効率的な方法でこのタスクを実行する方法についての提案をいただければと思います。私はa_value 列に存在するすべての重複を回避し、入力されたテーブルからすべての残りの行を取得し、それらをT2と
を記憶していインナークエリで
ないなど、一時テーブルなどの任意の制限は、?また、SQL Server、mysql、oracle、または? – Nikki9696
データにID列がありますか? yesの場合 - mysqlを使用している場合は、左結合を使用できます。少なくとも最初のフィルタリングされた結果の場合 – Seb
私の場合、Oracleです。 2つのテーブルから来る大量のデータセットの方が効率的であれば、テンポラリテーブルは問題ありません。 – Chill