0

次の PostgreSQL SELECT クエリは、テーブルに異なる値performance.query_planを持つ複数のエントリがあるため、常に結果を返します。TIMESTAMP

SELECT * FROM
  performance.query q,
  performance.query_plan AS qp
WHERE
  q.idx = qp.queryidx
  AND q.newplanneeded > qp.ts
LIMIT 1;

テーブル内のこれらのいくつかのエントリのうちperformance.query_plan、LATEST タイムスタンプ値 (q.newplanneeded列に格納されている) を持つエントリのみに関心があります。qp.tsWHERE条件で、テーブルの最も新しく追加された行と等しくなければならないことをどのように表現できperformance.query_planますか?

4

3 に答える 3

2
SELECT  (q).*, (qp).*
FROM    (
        SELECT  q,
                (
                SELECT  qp
                FROM    query_plan qp
                WHERE   qp.queryidx = q.idx
                ORDER BY
                        ts DESC
                LIMIT   1
                ) qp
        FROM    query q
        ) qv
WHERE   (q).newplanneeded > (qp).ts
ORDER BY
        (q).idx
LIMIT   1
于 2013-04-23T13:12:12.857 に答える