複数の履歴管理されるマスタを結合してマスタを作る(外部結合編)

前々回の記事にて、内部結合を使って複数の履歴管理されるマスタを結合する方法を書いたが、マスタを外部結合する必要がある場合、困ったことになる。外部結合では下図のように空き領域を埋めなければ、その部分の開始日、終了日が取得できない。 今のところ…

SQLで安全に除算を行なう

本日は軽い話題。SQLで除算を行なう時に困るのは、ゼロ除算の扱いだ。通常のプログラミング言語ならともかく、集計・分析をメインとするSQLにおいては、ゼロ除算はNULLあるいは0になってくれれば問題ない場合が多く、ゼロ除算エラーが発生してしまうのは、単…

複数の履歴管理されるマスタを結合してマスタを作る(内部結合編)

開始日と終了日を持つ履歴管理されるマスタは、特定の日付においては一意に定まるので通常の利用であれば問題ないが、複数の履歴管理されるマスタから別の履歴管理されたマスタを生成するのはものすごく困難である。しかし、内部結合する(=関係する履歴管…

「業務系SEの末路的なお話でして」と一人当たりGDP

「業務系SEの末路的なお話でして」という資料が一部の人々(というかソフトウェア業界人に)の話題になっています。 業務系SEの末路的なお話でして from okachimachi この資料自体は業界人的には、現在置かれている絶望的状況を的確に記述しているように思う…

履歴管理されているマスタを圧縮するSQL

[2012/8/23] 内容に誤りがあったため、一旦公開を停止していましたが、SQLが修正できたの再度公開しました。昨今は、どこの会社でもマスタを履歴管理するのが流行りらしく、適用期間(適用開始日と終了日)を持つことが多い。以前からこのようなマスタを扱う…

Oracle で SELECT INSERT 文を生成する

データをコピーする場合、CREATE TABLE テーブル名 AS SELECT ... の形式で書くとテーブルのコピーを作ることができる。当然、INSERT INTO テーブル名 SELECT ... の形式で書けばデータコピーできる……と思うのが実は大間違い。この構文では、テーブルのカラ…

PL/SQLでテーブルを同期する

他システムなど外部からデータを取り込み加工して本テーブルに取り込みたい場合というのは非常に多い。非常に多いにも関わらず、SQLでこのような処理を書くのは意外と難しい。いろいろと試行錯誤した結果、FULL JOINを使う方法に落ち着いた。 FOR cur_rec IN…

SQLで条件分岐

条件分岐という言葉を聞いた瞬間、SQLで書くことを諦めてしまう人がいる。しかし、SQLで条件分岐を書きたい時には次のどちらかのパターンを使えば良いだけである。 CASE 句を使う UNION ALL を使う 区分によって計算方法を変えたい場合は前者を使う。 SELECT…

按分時に端数を寄せるSQL

仕訳の配賦処理や消費税の按分計算で端数を伝票の特定の行に寄せたい場合がある。しばしば、この手の計算はPL/SQLなどを使って手続き型で実装されることが多いが、ウィンドウ関数を使えば簡単に実装できる。基本的な考え方はこうだ。 総金額に対する各明細へ…

重複データからユニークな行を取り出すSQL

昨日のエントリで N対M になるようなテーブルを結合するときは、N対1 にする必要がある旨書いたが、具体的にどうするかまでは書かなかった。例えば、全銀CSVをそのまま取り込んだ銀行マスタ(銀行コード、銀行名称、銀行支店コード、銀行支店名称)から銀行…

SQLの組み立て方

ソフトウェア開発をやっていると、SQLが苦手なプログラマに多く出会う。SQLはすごく柔軟で高度な処理を簡潔にかけるにも関わらず、わざわざ単純なSQLを使って大量のデータをした後、Javaなどの手続き型言語で加工するわけだ。単にアホなだけという可能性も否…

ベーシック・インカムについての個人的見解

Twitterでベーシック・インカムの話を書くと、どうにも批判を多く受ける。たしかにベーシック・インカムについて様々な意見を見ると、飯田泰之氏などが主張する月5万円という穏当なものから山森亮氏が主張する月15万円という理解し難いものもあり、単にベー…

債務問題の争点

債務問題、論点が多すぎることもあり、どうにも議論の争点が定まらない。ひとつには債務問題は「冷たい方程式」上にあり、バラ色の解決策が存在しない、ということがあるのだろう。「消費税を上げるべきだ」という主張が政策の争点になっていることもあり、…

分配問題についての個人的見解

最近、生活保護の問題が世間を騒がせており、特に片山さつきはキ○○イだと思うが、日本人の醜さを露呈させる結果になっている。さておき、一方の左な方々も小宮山厚労相の生活保護費削減ばかりに怒りをぶつけ過去、保護費の水準ばかりを問題にしてきたため保…

ナッジと選挙制度

ブログの更新も途絶えているので、たまには思いついたことでも書いておこう。ナッジにあるようにデフォルトに適切な選択肢を準備しておくことは、政策として重要なことである。翻って、現在の日本の選挙制度を思い出した時、デフォルトの選択肢は何であろう…

JSONIC 1.3.0 ベータ2 でどれくらい速度が改善したか

というわけで、JSONIC 1.3.0 ベータ2 出しました。直前の計測では、GSONを上回るパフォーマンスが出ていたのですが、GSON2.1が出ているのを気づかずにいたため、入れ替えて測ってみたら、高速化されててまた負けてしまってましたorzまぁ、それはともかく、JS…

json-simple その実力はいかに。

Twitterで検索すると不具合情報がつかみやすいので、たまに検索しているのだが、昨日検索してたらjson-simpleがいいらしいよ、という話が出ていたので調べてみた。Heap based parserとか書かれているので、もしかすると高速化のヒントが得られるかもしれない…

JSONライブラリのパフォーマンス比較

つい先日、Androidアプリで使えるJSONライブラリ比較という記事で例によってJSONICパフォーマンス悪い、という話が出ており、個人的には必要性を感じていないものの、悔しいのでパース側も高速化してみることにしました。というわけで、本日、いわゆるプルパ…

クリスマスなんで

そういえば今月更新してないなということに気付いたので、さっき書いたばかりのサンタクロースの絵を貼り付けてお茶をにごすのであった。それにしても、最近一年経つのが早い……年取ったということなんだろうなぁ。

Antでfilesetのファイル一覧を標準入力としてプログラムに渡す

TwitterでTPPに賛成の論陣を張ったところ、人非人やら非国民やら言われ肩身の狭い今日この頃。正直、反対派がこれが問題だ!と言っている話がまったく問題に見えなかったりで、世間との乖離を感じる次第。まぁ、それはともかく今日もAntですwAntにはfileset…

Dartに求めるもの

Googleから新しいプログラミング言語 Dart が発表された。内容を見るかぎりとても実用的なすばらしい言語に思える。どこら辺が実用的かと言えば、Java言語そっくりなシンタックス(既存言語と似たシンタックスを用意することは、広く利用される言語になる条…

JSONIC 1.2.7 リリース

http://jsonic.sourceforge.jp/前回リリース後に報告され溜まっていた不具合修正を吐き出したのもあるけれども、何と言っても今回のバージョンから Maven Central Repository に登録されました。まぁ、いままで登録してなかったのは、やり方がさっぱりわから…

AntでScriptdefを使ってIFタスクを作る

今回も技術ネタ。お、まるで技術ブログみたいだ(w閑話休題。ANTでIF分岐を行おうとしたら、targetを分けてif/unlessで処理をわけるのが常套手段である。しかしながら、たかだか、特定の条件でメッセージを変えたいくらいのことでtargetを分けるのはずいぶん…

1px solid指定のテーブルで外枠だけ色を変える方法

例によって今回も経済の話はなし。政治がこうどうしようもない状況では、どんな政策も通らないわけで、やや虚しさを感じてしまう(暑いので単に夏バテしているだけではという話もある)。それはともかく、結構前からtableのボーダーの優先順位に関しては、苦…

JSONIC 1.2.6 リリース

http://jsonic.sourceforge.jp/ずいぶん久しぶりな気もしますが、二、三不具合修正を行ったのでリリースとあいなりました。変更点は以下の通りです。速度も微妙に向上してますが、気付かない程度のレベルなので…… [不具合] preformatの中でループ中に変換先…

Antで内容が更新されたファイルを抽出する

本来書こうとしていた内容が頓挫してしまったので、技術ネタでお茶をにごすなど。個人的に長らく謎であったAntで内容が異なるファイルの一覧を抽出する方法がわかったので書いておく。Ant便利なんだがいろいろ説明不足な気が…… <resources id="diff"> <restrict> <fileset dir="new" includes="*.txt" /> <compare when="ne"> <control> <fileset dir="old" includes="*.txt" /> </control> <content /> </compare> </restrict> </resources>

将来世代の負担を考える

日本の積み上がった財政赤字に対し、昨今、「財政赤字は将来世代の負担になるので増税の方が適切である」とする言説が主に日本の経済学者を中心にしばしば聞かれる。最近知ったのだが、この「将来世代の負担」という言葉には、概念の異なる二つの考え方があ…

レジーム転換したら復興財源にならないのか

himaginary氏の「日銀の国債引き受けに関する議論の超簡単なまとめ」という記事に昨今の議論のまとめが記載されている。私も「積極派」なのだが、一部異論があるので書いておこうと思う(積極派の多数が私と同じ意見をもっているかはわからないし、単に私が…

震災と復興から経済を考える

震災により日本経済が大きなダメージを受けて以降、経済学界隈では復興の財源についての激しい議論が行われている。人によっては、こんな時にそのような議論は不謹慎である、と感じるかもしれない。しかしながら、経済学者に道徳や具体的な災害対策、代替エ…

国民災害保険設立のお願い

東北地方太平洋沖地震により発生した東日本大震災は、現時点で死者・行方不明者2万人を超える大惨事を引き起こした。私自身は九州出身東京在住ということもあり、今回の震災で知己の人が巻き込まれることはなかったが、現地に検死に行かれた方のブログや生…