おれの技術日記

元はJava+SQLがメインのエンジニア、フロントエンドは軽くかじった程度で苦手。最近忘れっぽいので覚えたことをいろいろメモするためにブログ開始。

SQL

バスケット分析(併売分析)のためのSQL

いわゆる売上トランザクションテーブル、こんなデータから OrderID Date ProductID ・・・ 0000001 2017-07-01 A001 ・・・ 0000001 2017-07-01 A002 ・・・ 0000002 2017-07-02 A003 ・・・ 0000003 2017-07-02 A001 ・・・ 0000003 2017-07-02 A002 ・・・…

月次累計を求めるSQL

こんなデータがあるときに Date Sales 2017-07-01 110 2017-07-02 120 2017-07-03 130 ・・・ ・・・ 2017-07-31 410 2017-08-01 100 2017-08-02 110 ひとつカラムを追加して、月次累計(Monthly Running Total)を求めたい場合に Date Sales MRT_Sales 2017…

MySQLでカレンダーテーブルを作る

自分がよく使うSQLをライブラリ的にここに残しておく。こんな感じでSQLを書くと SELECT @date:=date(date_format(CURRENT_DATE(),'%Y-%m-01')) as Date UNION ALL SELECT @date:=DATE_ADD(@date, INTERVAL 1 DAY) FROM `テーブル名` WHERE @date < last_day(…