【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
テーブル 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);
何故、その都度、レコードの並びが変わってしまうのでしょうか?
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
テーブル posts でのレコードの並び順は、連番 id の小さい順になっていますが、
テーブル posts 全体をパーティションに設定して、カラムとして AVG(likes) を追加すると、テーブルのレコードの並びが変わります(id = 4, 7, 5, 2, ---)。
また、area でパーティションを設定した上でカラムを追加すると、またレコードの並びが変わります(id = 2, 9, 6, 8, 4, ---)。
何故、その都度、レコードの並びが変わってしまうのでしょうか?