会社のECサイトで利用している、クレジット決済代行サービスのシステム改修が某日AM4時~6時の時間帯にかけて行われると通達があった。
改修中はクレジット決済を利用できないので、ユーザーに向けて何らかの案内をしようと考え、まずはこのシステム改修によりどの程度のユーザーへ影響が出るのかを調べてみた。
対象となるユーザーの定義
この定義は簡単で、以下の条件に該当するユーザーが対象となる。
注文した時間:AM4時~6時
支払い方法:クレジット決済
これまでの受注データの中から、上記条件に当てはまるユーザーが全体の何パーセントいるかを調査する。
特定の時間帯の受注データを抽出するSELECT文
受注情報を管理しているデータベースへアクセスし、SELECT文を書くのが一番早い。
SELECT order_date, payment_method
FROM dtb_order
WHERE
order_date is not NULL AND
to_char(order_date, 'hh24') >= '04' AND
to_char(order_date, 'hh24') < '06' AND
payment_method = 'クレジット決済'
;
上記のSQLはEC-CUBE3を想定したSELECT文だが、カラム名、テーブル名などを変えれば他のDBでも応用が可能なはず。
ポイントは、to_char関数で受注日のタイムスタンプを「24時間表記の時間」に変換している点で、これで全期間中・特定の時間帯の受注データを抽出することができる。
後は、抽出した「レコードの件数 / 全受注件数」で対象ユーザーのパーセンテージが算出できる。
ちなみに実際のDBで調べたところ、過去の対象ユーザーの割合は0.67%だったので、今回のシステム改修による影響はほぼ出ないだろうと考えられる。