0
私は問い合わせたいと思っている単純なpostgresqlテーブルを持っています。 ...PostgreSQL Group期待どおりに動作しない - インクルードが多すぎる
| ID | Account_ID | Iteration |
|----|------------|-----------|
| 1 | 100 | 1 |
| 2 | 101 | 1 |
| 3 | 100 | 2 |
を、このようなテーブルを画像化する私は繰り返しがその最大値であり、各ACCOUNT_IDのためのID列を取得する必要があります。だから、あなたはこのような何かが
SELECT "ID", "Account_ID", MAX("Iteration")
FROM "Table_Name"
GROUP BY "Account_ID"
を働くだろうと思うだろうと私は得ることを期待:
| ID | Account_ID | MAX(Iteration) |
|----|------------|----------------|
| 2 | 101 | 1 |
| 3 | 100 | 2 |
をしかし、私はこれを行う際に、Postgresは文句:
ERROR: column "ID" must appear in the GROUP BY clause or be used in an aggregate function
どちらを、私はそれだけでグループを破壊し、私にテーブル全体を与えることを行う!
次の方法でこれにアプローチする最善の方法はありますか?
SELECT DISTINCT ON ("Account_ID") "ID", "Account_ID", "Iteration"
FROM "Marketing_Sparks"
ORDER BY "Account_ID" ASC, "Iteration" DESC;
PostgreSQL独自の「distinct on」は、これをうまく解決し、推奨される方法です。さもなければ、少しのsql fooが必要です。 –