レコードの並びがどうして変わるのか?

ORDER BYを指定しない限り、並び順は不定だからです。
2020年9月25日
ユーザー

テーブル posts でのレコードの並び順は、連番 id の小さい順になっていますが、

SELECT * FROM posts;

テーブル posts 全体をパーティションに設定して、カラムとして AVG(likes) を追加すると、テーブルのレコードの並びが変わります(id = 4, 7, 5, 2, ---)。

SELECT *, AVG(likes) OVER () AS avg FROM posts;

また、area でパーティションを設定した上でカラムを追加すると、またレコードの並びが変わります(id = 2, 9, 6, 8, 4, ---)。

       SELECT                       
         *,                     
         AVG(likes) OVER () AS avg,                     
         AVG(likes) OVER w AS area_avg,                     
         SUM(likes) OVER w AS area_sum                      
       FROM                     
         posts                      
      WINDOW                        
         w AS (PARTITION BY area);  

何故、その都度、レコードの並びが変わってしまうのでしょうか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?