1. ホーム
  2. sql

[解決済み] どのようにSQLクエリから最初と最後のレコードを取得するには?

2023-05-07 12:19:15

質問

テーブルを PostgreSQL でテーブルがあり、いくつかの条件を付けてクエリを実行し、カラムの一つで並べた複数行を返します。一般的にはそれは

SELECT <some columns> 
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC

今、私はこのクエリから最初の行と最後の行を取得することにのみ興味があります。私は、アプリケーションの内部で、データベースの外側からそれらを取得することができましたが (これは私が実際に行っていることです)、より良いパフォーマンスのために、私が実際に興味を持っているこれらの 2 つのレコードだけをデータベースから取得すべきではないのか疑問に思いました。

そして、もしそうなら、私はどのように私のクエリーを修正するのでしょうか?

どのように解決するのですか?

[警告: 最も効率的な方法ではないかもしれません]。

(SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
LIMIT 1)

UNION ALL

(SELECT <some columns>
FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date ASC    
LIMIT 1)