3

テーブル内のすべての列が必要ですが、2つの列は区別する必要があります。このコードを使用しましたが、すべての列をチェックしますが、必要なのは2つだけです。どうすればこれを満たすことができますか?

select distinct a.personalId, a.fileId, a.name, a.surname, a.address from my_table a

次のコードを使用した場合、他の列を取得できません。

select distinct a.personalId, a.fileId from my_table a
4

2 に答える 2

6

Postgresql は DISTINCT ON 構文をサポートしています: http://www.postgresql.org/docs/current/interactive/sql-select.html

select distinct on (a.personalId, a.fileId) a.personalId, a.fileId, a.name, a.surname, a.address
from my_table a

Postgres の DISTINCT ON に相当する Oracleを参照してください。Oracleでこれを行う方法について。

于 2012-11-01T09:35:21.253 に答える
1

他の列が異なる場合はどうなりますか? データベースは表示する値をどのように選択する必要がありますか? 答えは「できない」です。できないため、これを行うための構文はありません (論理エラーです)。

MySQL には、値をランダムに選択する拡張機能があります。

select a.personalId, a.fileId, a.name, a.surname, a.address
from my_table a
group by a.personalId, a.fileId

しかし、これに依存することはお勧めしません。使用しているロジックを再考する必要があります。

于 2012-11-01T09:31:33.097 に答える