Postgresの使用9.4タイムスタンプによるPostgresソートはMacでは動作しますがLinuxでは動作しません
私はusersテーブルに関連するpostsテーブルを持っています。 2人のユーザーと3人の最新の投稿を照会しています。
SELECT
"users"."id" AS "id",
"posts"."id" AS "posts__id",
"posts"."created_at" AS "posts__created_at"
FROM (
SELECT * FROM accounts
WHERE TRUE
ORDER BY "id" ASC
LIMIT 2
) AS "users"
LEFT JOIN LATERAL (
SELECT * FROM posts
WHERE "users".id = posts.author_id
ORDER BY "created_at" DESC, "id" DESC
LIMIT 3
) AS "posts" ON "users".id = "posts".author_id
Macの場合、注文は予期されたとおりです。
"2016-04-17 18:49:15.942"
"2016-04-15 03:29:31.212"
"2016-04-13 15:07:15.119"
私はtimestamptz
ある、created_at
に降順ます。 Ubuntuのである私のトラヴィスビルド、上で実行した場合しかし、順序は安定であるが、どちらも昇順でも降順....
"2016-04-15 03:29:31.212"
"2016-04-13 15:07:15.119"
"2016-04-17 18:49:15.942"
ノー運と同じLC_COLLATE = en_US.UTF-8
を持つデータベースを作成し、ユーザーを作りました。なぜ地球上でトラビスで作業しているのではないのですか?
これは変更なしでPGバージョン9.5で動作します。あるいは、外部クエリに 'ORDER BY'を追加します。私は移植性のために注文句を追加し、ちょうど9.5にアップグレードしました。 –