タグ

ブックマーク / crmprogrammer38.hatenablog.com (4)

  • SQL: Window関数を理解できた時の思い出2 - プログラマ38の日記

    前の続きです。 crmprogrammer38.hatenablog.com Window関数では、Windowの中で並び替えをした順番に各行で計算する仕組みがあります。累計の計算を例にします。(BIツールで、ランニングサムの名称がついていたりします) 以下の年別累計の項目は、年毎のWindowの中で年月の古い順に出費を足した値となります。 年 年月 出費 年別累計 2016 201611 27,000 27,000 2016 201612 24,000 51,000 2017 201701 18,000 18,000 2017 201702 3,000 21,000 2017 201703 15,000 36,000 2017 201704 27,000 63,000 これを出力するSQLは次になります。(rows betweenを省略しないで書いています) select 年 ,年月 ,

    SQL: Window関数を理解できた時の思い出2 - プログラマ38の日記
  • DWH/SQL: データマートの作り方メモ - プログラマ38の日記

    DWHで使い勝手を向上するため、粒度の異なる複数のファクトを加工して1つのデータマートを作成する時があります。 例えば、次のようなデータマートを作成します。 インプットデータ 商品別、年月別の見込みデータがある。 商品別、年月日別で実績データがある。 アウトプットデータ 商品別、年月別で見込み・実績データマートを作る。 (見込み・実績データマートは、商品、年月に対して見込値、実績値を持つ) こういった時のデータマートを作るときは次のようなSQLになります。 select 商品          as 商品 ,年月          as 年月 ,sum(見込値)   as 見込値 ,sum(実績値)   as 実績値 ( select 商品                       as 商品 ,年月                       as 年月 ,見込値           

    DWH/SQL: データマートの作り方メモ - プログラマ38の日記
    michael-unltd
    michael-unltd 2022/08/22
    DM設計
  • DWH: データモデル(8.ナチュラルキーを基本とし、サロゲートキーはピンポイントで使う。) - プログラマ38の日記

    この記事は、前回書いたデータモデリングの9つのことの8つ目です。 crmprogrammer38.hatenablog.com DWHでは、サロゲートキーを使う場合があると思います。 個人的にサロゲートキーをポイントを絞ったほうがいいように感じています。 というのは以下のような場合に保守しずらいと思うからです。 ・金額がおかしいなどの調査の際に、ファクトはディメンションと結合しないとナチュラルキーが判断できない ・ディメンションの作成処理に誤りがあった。ファクトの作成処理に誤りがあった場合、データの復旧が難しい。 ・ディメンション作成後、ファクト作成という順番のため、ディメンション作成でエラーがでると、そのエラーを解決するまでファクトが作成できない。 もちろんメリットもあるので、ポイントを絞って使うものだと思います。 例えば、サロゲートキーを使うことで、来であれば10項目で結合するところ

    DWH: データモデル(8.ナチュラルキーを基本とし、サロゲートキーはピンポイントで使う。) - プログラマ38の日記
    michael-unltd
    michael-unltd 2022/08/22
    サロゲートキー設計
  • Salesforce: 1度のSOQLで選択リストの値(表示ラベル)とAPI 参照名を取得する。 - プログラマ38の日記

    toLabelで表示ラベルを取得する 例えば次のような選択リスト項目「PickTest__c」があります。 1) 項目をselectした場合 選択リスト項目は、オブジェクトには、API 参照名がセットされていて、Apexコードと実行結果は次の通りです。 [Apex] List<Sample__c> rows = [Select PickTest__c From Sample__c]; for(Sample__c row : rows){ System.debug(row.PickTest__c); } [実行結果] a b c 2) tolabelを使用した場合 tolabel関数で表示ラベルとなります。(翻訳が指定されている場合は、翻訳後の値となり、翻訳が指定されていなければ、値になります)ここでの注意したいのが、SOQLでtolabel関数を使用しても、Apexコード上は項目名をそのま

    Salesforce: 1度のSOQLで選択リストの値(表示ラベル)とAPI 参照名を取得する。 - プログラマ38の日記
    michael-unltd
    michael-unltd 2018/08/01
    “tolabel”
  • 1