[MySQL]ウインドウ関数


お久しぶりでございます。まっきーです。

幾分も前からMySQLerの私とは無縁であった
「ウインドウ関数」なるものがMySQLにも到来したとのことで、
丁度いい案件が転がっていたので、初めて使ってみました。

とある日・・・

ある日、上司から部下Aさんに命令がくだりました。
「特定の費用を集計しろ!なおかつ、費用計はある特定の数の割合で按分せよ!(※)」と
※弊社にこのような口調の上司はおりません。

部下AさんはSQLを書きながら、
「全体の按分?SQLだけじゃ無理じゃないけどSQLの視認性低いし、
データのこねこねはビジネスロジックでやろー」
と考えました。

こんなんええやん

実はこんな全体の割合をだすときに「ウインドウ関数」を使うと
SQLだけで算出できるのです。

※A表からB表を作りたい
A表
部署名
15000
25000
310000
B表
部署名金額割合
1500025
2500025
31000050


時間の都合上、後半がとても雑になり大変申し訳無いですが、
要するにこの「OVER()」という関数を使うことで、
明細と集計が混在できるということが大きなメリットかと思います。


MySQL

Posted by まっきー