はじめに 前々回にも書きましたが、SQLの特徴として(PL/SQLなどは除いて) ループを書くことが出来ない ことが挙げられます。とはいってもロジックを考えていると、ループさせたくなることがあることも事実です。 このような場合、SQLで解決するために考えてられるのが カットを使う ウィンドウ関数を使う ことです。以下に実例を挙げてみたいと思います。 今回行いたいこと サンプルデータ 今回は以下のPostgreSQLのサンプルデータベースを使いました。DVDのレンタルショップを題材としたデータのようです。 PostgreSQL Sample Database リンクを開いてもらうとER図が載っているので参照してください。 抽出するデータについて rantalテーブルのレンタル履歴データを参照し、顧客ID(customer_id)ごとに最も長い期間借りたレコードを抽出しました。 これを手続き型
![[SQL]ループをカット、ウィンドウ関数で解決する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/d9d7a9e19a3c5979fc0b83efa7beeec666f705bb/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2015%2F07%2Fsql.png)