SQL
DWHで使い勝手を向上するため、粒度の異なる複数のファクトを加工して1つのデータマートを作成する時があります。 例えば、次のようなデータマートを作成します。 インプットデータ 商品別、年月別の見込みデータがある。 商品別、年月日別で実績データがあ…
Salesforceではデータの取得でSOQLを使います。一般的なRDBのSQLと似ていますが、結合処理や、検索の指定がSQLと異なります。 検索条件でのnullの指定と検索結果について、SOQLとSQLの違いがあるのでメモです。 次のデータをサンプルとしてSOQLとSQLで検索結…
前の続きです。 crmprogrammer38.hatenablog.com Window関数では、Windowの中で並び替えをした順番に各行で計算する仕組みがあります。累計の計算を例にします。(BIツールで、ランニングサムの名称がついていたりします) 以下の年別累計の項目は、年毎のWi…
はじめて扱ったデータベースは、Oracle8で、その時はWindow関数自体がなく、検索条件と結合条件が入り混じるSQLを書いていました。 その後Oracle9になって、SQLも変化していましたが、Window関数とは距離を置いていました。あまり使う必要性を感じなかったの…
気を抜くとすぐ忘れてしまうのでメモ。(メモしたから忘れないわけではないですが) 書き方の例でnullif関数を使っていますが、適宜データベースで用意されている関数に置き換えが必要です。 SQLの割り算では分母が0の時はnullに変換する 0除算エラーの対策…
SQLで縦持ちから横持ちへ変換、横持ちから縦持ちの変換を行うことは多いと思います。 横持ちから縦持ちへの変換は、union all を使うことで実現ができ、union allはどのデータベースでも使えるので困ることは特にありません。 ですが、縦持ちから横持ちへの…
MS-ACCESSの結合は、通常では大文字・小文字の区別がありません。たまに、大文字・小文字を区別して結合をしたい時があります。例えば、Salesforceの15桁のSalesforceIDで結合する場合などです。 そんな時には、「strcomp(項目1, 項目2, 0) = 0 」を使うこ…