2017-07-26 14 views
0

によってグループとの選択から:今選択したレコード(ROWID)私はこのようなクエリ持つフィールド

SELECT aa, bb, cc, dd, ee, ff, gg, hh, ii, ll, mm 
FROM table1 
GROUP BY aa, bb, cc, dd, ee; 

を、私は、レコードによってグループ内で比較しないフィールドを選択しますmax rowid。 私はPostgresにいるので、ROWIDはCTIDと同等ですか?

postgresqlでは同等のROWIDはありますか? どうすればいいですか? ありがとう

+0

Oracleでは 'max(rowid)'、Postgresでは 'max(ctid)'は意味を持ちません。あなたはそれで何を達成しようとしていますか? –

+0

**あなたの質問に** [EDIT] **し、いくつかのサンプルデータとそのデータに基づいて予想される出力を追加してください。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、** **スクリーンショットはありません**(http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-images-of-code-on-so-asking-a-question/285557#285557)。 ** [編集] **あなたの質問 - コメントを投稿するコードや追加情報はありません**。 –

答えて

0

私はあなたが何を意味するか分からないが、SELECTリストにmax(ctid)を追加することができます。

つの注意点:

  1. あまり意味がありません。

  2. ctidは、PostgreSQLの行バージョンの動作が異なるため、OracleのROWIDとは大きく異なります。各UPDATEの後、行は異なるctidを持つことができます。

+0

OracleのROWIDはPostgresのctidと実際には違いはありません。 ROWIDも同様に変更される可能性があります(ただし、Postgresの場合ほど頻繁ではありません)。また、行の順番を暗示するわけでもないので、Oracleの 'rowid'で' max() 'を使用することは意味がありません。 –

関連する問題