例えば、私のデータは次のように見れば:SQL:選択N昇順で「最新の」行
timestamp | message 100 | hello 101 | world 102 | foo 103 | bar 104 | baz
私は、最新の3つの行を選択するにはどうすればよい - 102、103、104 - 昇順を注文?
明白な(私に)… LIMIT 3 ORDER BY timestamp DESC
は正しい行を返しますが、順序は正しくありません。
例えば、私のデータは次のように見れば:SQL:選択N昇順で「最新の」行
timestamp | message 100 | hello 101 | world 102 | foo 103 | bar 104 | baz
私は、最新の3つの行を選択するにはどうすればよい - 102、103、104 - 昇順を注文?
明白な(私に)… LIMIT 3 ORDER BY timestamp DESC
は正しい行を返しますが、順序は正しくありません。
が正しい行を選択するために、内側のSELECTを使用し、それらを正しく注文する外側の選択:
SELECT timestamp, message
FROM
(
SELECT *
FROM your_table
ORDER BY timestamp DESC
LIMIT 3
) T1
ORDER BY timestamp
Hrm ...私はそれを試してみるのに便利なpostgresのインスタンスを持っていませんが、SQLiteの 'EXPLAIN'はソートになります(カラムがインデックスされていない場合は2つ)。この冗長なソートを避ける方法はありますか? –
いいえ。 SQLには「逆」操作はありません。しかし、おそらくあなたが結果を引き出している言葉は何ですか? –
@David:待って、あなたは* 3つの*レコードをソートしているのですか? ;) –
あなたはタイトルに降順で行を求め、そして問題の_ascending_ため、ですあなたが探している? – jsvk
D'oh!ありがとう。私は上昇したい。一定。 –