skillup

技術ブログ

Database

サブクエリ 分析関数の代替案として

投稿日:2016年11月17日 更新日:

今回は分析関数系のネタです。

以前にも分析関数を少し学習しましたがMySQLにはないので、サブクエリを使い書くことになります。

下記のような入出金講座があるとします。
Accounts

prc_date | prc_amt
————+———
2006-10-26 | 12000
2006-10-28 | 2500
2006-10-31 | -15000
2006-11-03 | 34000
2006-11-04 | -5000
2006-11-06 | 7200
2006-11-11 | 11000

ここから現在の口座残高を求めてみます。ここでは分析関数を使うと非常に楽です。例えば下記のように書いてみましょう

prc_date | prc_amt | onhand_amt

————+———+————
2006-10-26 | 12000 | 12000
2006-10-28 | 2500 | 14500
2006-10-31 | -15000 | -500
2006-11-03 | 34000 | 33500
2006-11-04 | -5000 | 28500
2006-11-06 | 7200 | 35700
2006-11-11 | 11000 | 46700

ただ残念なことにMySQLでは入っていないのでこれをサブクエリを使って求めます。

これもやはり自己結合でがんがえると物凄いわかりやすいです。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

データベースの権限設定

データベースを作成するときに

と入力していますが、ほぼ機械的にこれを売っているのでこれを機にどんな使い方があるのかを調べてみました。 …

no image

MySQLのLIMIT,OFFSETに関して&explainの見方など

自作のWEBアプリを作っていたところSELECT句が異常に遅いケースがありました。 発見までにかなり時間がかかったんですが、不可思議な現象としてはOFFSETが小さいときと大きいときで検索スピードが全 …

no image

persistence.xmlのプロパティについて

JavaEEではデータベースとの設定情報はpersistence.xmlに記述します。 (ユーザー名、パスワード、ポート、driver名、データベース名などの情報はglassfish-resource …

no image

MySQL.sockファイルに関して

朝出社してテストサーバーを見るといきなりサーバーが動いていないという事態が発生。 MySQLを起動しようとすると

なるメッセージがでて …

アーカイブ