「また上司に“直近90日のデータで分析しといて”って言われたんだけど、これって結局何を見ればいいんだろう?」
そう思ったことはありませんか。
過去7日や30日でもなく、なぜ90日なのか。そして、そのデータをどうやって手早く抽出して、ビジネスに役立つインサイトに変えるのか。この記事では、SQLやスプレッドシートでの具体的な抽出方法から、マーケティングや営業戦略に活かすための“90日の黄金律”までをまとめて解説します。
last_90_daysとは何か?なぜ90日が重要視されるのか
last_90_daysとは、本日を起点として過去90日間にわたる期間を指す言葉です。日付の条件指定やデータ分析の現場で、あまりにも当たり前のように登場するフレーズです。
なぜ30日でも365日でもなく、90日なのでしょうか。
ビジネスの現場で「ちょうどいい」と評価されている理由は、ノイズと鮮度のバランスにあります。7日や30日といった短いスパンだと、週末のセールや祝日の影響をモロに受けてしまい、長期的なトレンドが見えづらくなります。かといって365日だと、今の市場の動きや顧客のニーズ変化からずれてしまうことも少なくありません。
その点90日は、四半期という経営のリズムとも重なり、ユーザーの行動パターンや購買サイクルを掴むのに絶妙な幅なのです。
なぜ分析期間として90日が絶妙なのか
短すぎず長すぎない「ちょうどいい」バランス
分析をしていると、30日のデータに一喜一憂してしまうことがあります。たまたま大口受注があった月や、逆に大型連休で動きが止まった月を基準にすると、誤った意思決定につながりかねません。
90日あれば、そうした瞬間的な凸凹がならされて、緩やかな上昇トレンドか下降トレンドかが見えてきます。
四半期と連動する思考のしやすさ
ビジネスの世界は四半期決算で動いています。目標設定や予算管理もクォーター単位であることがほとんどです。最後の締めのタイミングで過去90日をさかのぼれば、今期の着地見込みから次期の戦略までがスムーズに議論できます。
顧客の記憶と行動が残っている期間
マーケティング視点でいうと、90日は顧客の記憶や興味が完全に消えるかどうかの分岐点とも言われます。3カ月前に資料請求したけどまだ購入していないリードは、もう一度アプローチすれば再燃する可能性が高い層です。逆に90日間まったくサイトに戻ってこなければ、休眠と判断して別の施策に切り替える目安にもなります。
マーケティング・営業戦略に活かすlast_90_daysの視点
サブスクリプションの健全性を測る
定額制サービスを運営しているなら、過去90日のアクティブユーザー率を見る習慣をつけてみてください。新規登録の数だけを追いかけても、それ以上の解約が起きていれば意味がありません。
90日間の中で、ログインや主要機能の利用が一度でもあったユーザーの割合を毎週追うだけで、プロダクト全体の定着度がクリアに見えてきます。解約が増え始める前に、小さな兆候をキャッチできるようになるでしょう。
リードナーチャリングの温度感を掴む
BtoBの営業シーンでは、過去90日以内にホワイトペーパーをダウンロードしたリードや、ウェビナーに参加した見込み客は「ホットリード」として最優先でフォローしたい層です。
90日を過ぎると、担当者が異動していたり、予算が別のプロジェクトに回ってしまったりと、商談化の確率はぐっと下がります。MAツールのセグメント機能を使って、90日以内の行動履歴があるかどうかでシナリオを分岐させると、無駄な接触を減らしつつ成約率を上げられます。
広告の効果検証にも最適なスパン
リスティング広告やSNS広告も、30日のデータだけで入札調整をすると、曜日やキャンペーンの影響を受けすぎて安定しません。検索クエリーの変化やクリエイティブの疲弊を見極めるには、最低でも90日のデータを「ローリング」で眺めるのがおすすめです。
データ抽出を簡単にするツール選び
日々の業務でlast_90_daysを扱うなら、手作業で日付を電卓計算するのは非効率です。分析や可視化を助けてくれるツールをいくつか紹介します。
Looker Studio(旧Googleデータポータル)
無料で使えるBIツールで、データソースに接続すればGUI操作で相対日付フィルターを作成できます。技術的なクエリを書かなくても、今日を起点にした過去90日間のデータ表示が可能です。
Tableau
より高度な分析や社内共有をしたいなら、Tableauを検討する価値があります。エンタープライズ向けのガバナンス機能も充実しており、直感的なドラッグ&ドロップでローリング期間のダッシュボードを構築できます。
HubSpot
MAツールのHubSpotでは、過去90日の行動データを軸にリードスコアリングや動的リストの作成が簡単です。マーケティングから営業まで同じ定義の「90日間」で顧客を追えるのが強みです。
Shopify
EC事業者ならShopifyの管理画面に標準装備されている分析機能が役立ちます。過去90日間の販売額やリピート率をデフォルトで確認でき、アプリ連携でさらに深い分析も可能です。
SQLでlast_90_daysを扱う実践的な書き方
PostgreSQL・MySQLでの基本形
最もシンプルなのは、CURRENT_DATE - INTERVAL '90 days'を使う方法です。たとえば次のようなクエリになります。
SELECT *
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days';
インデックスがorder_dateカラムに張ってあれば、パフォーマンスも問題ありません。
BigQueryのStandard SQL
BigQueryでは次のように書きます。
SELECT *
FROM `project.dataset.orders`
WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY);
大規模データを扱う際にはパーティション分割テーブルを活用し、不要なスキャン範囲を絞るとコストが抑えられます。
タイムゾーンの注意点
UTC基準のデータベースに日本時間で保存している場合は要注意です。CURRENT_DATEが協定世界時で判定されると、日本の午前9時以前のクエリ結果が意図しないものになる可能性があります。AT TIME ZONE 'Asia/Tokyo'を適切に使って、境界を明確にしておきましょう。
Googleスプレッドシートでlast_90_daysを動的に管理する
クエリを使わずにスプレッドシートでさっと抽出したいシーンも多いでしょう。
ひとつのセルに=TODAY()-90と入力すれば、今日から遡った日付が自動で表示されます。このセルを基準に、FILTER関数やQUERY関数で別シートのデータを動的に絞り込む仕組みを作れます。
たとえば以下のような数式です。
=FILTER(データ範囲, 日付列 >= TODAY()-90)
レポートを開くたびに自動で期間が更新されるので、毎週の定例会議用資料も手間なく最新化できます。
Pythonでlast_90_daysのデータを処理する
データ分析でPythonを使っている方なら、pandasでのフィルタリングが便利です。
import pandas as pd
from datetime import datetime, timedelta
df['date'] = pd.to_datetime(df['date'])
start_date = datetime.now() - timedelta(days=90)
filtered_df = df[df['date'] >= start_date]
数百万行を超えるデータでも、pandasのベクトル演算で高速に処理できます。
業界別に見るlast_90_daysの活用シナリオ
EC事業者の場合
過去90日のリピート購入率を見ると、サイト全体の健康状態がわかります。新規顧客獲得広告に力を入れる一方で、直近90日以内に初回購入したけどまだ2回目の購入がない顧客へ、クーポンメールを自動配信するといった施策が打てます。
BtoBマーケティングの場合
過去90日間に発生したリードのソース別CV率を追ってみましょう。オーガニック検索経由のリードは30日ではまだ商談化していなくても、90日経つとじわじわと案件化している、なんて発見があるかもしれません。
カスタマーサクセスの場合
90日以上ログインがないユーザーを「休眠アカウント」と定義し、専用の復帰キャンペーンを設計する企業が増えています。解約の大半はこの層から発生するため、早期発見が肝心です。
last_90_days活用時によくある質問と注意点
営業日ベースで90日を取りたい場合は?
単純な暦日ではなく、平日だけをカウントしたいケースもあります。SQLの場合は、各国の祝日カレンダーテーブルを結合して判定する必要があります。GoogleスプレッドシートならNETWORKDAYS関数が便利です。かなり複雑なロジックになるため、要件が厳密なら最初からBIツールの営業日計算機能に頼るのも一手です。
データの鮮度はどう保てばいい?
「過去90日」のデータが自動更新されていなければ、意味のある分析はできません。Looker StudioでもTableauでも、データソースの更新スケジュールを確認する習慣をつけましょう。API経由の取得が滞っていないか、定期的にチェックすることも大切です。
期間を固定した比較分析がしたい場合は?
「常に最新の90日」だけでなく、「前期の同じ90日」と比較したいこともあります。たとえば2025年12月~2026年2月と、2025年9月~11月を並べるイメージです。こうした比較をする際は、抽出ロジックを固定日付版と相対日付版の2つ用意しておくと、レポート作成が格段に楽になります。
last_90_daysはあなたの意思決定を支える基準になる
結局のところ、last_90_daysというたったひとつのフィルターが、ノイズだらけのデータを「意味のある情報」に変えてくれます。
今日からできることは3つです。
- 自社のKPIダッシュボードに「過去90日の推移」パネルを追加する。
- クエリやスプレッドシートの抽出条件を見直し、手動入力ではなく相対日付に切り替える。
- チーム内で「90日」を共通言語にして、判断の軸を揃える。
期間の定義ひとつで、会話の質とスピードは驚くほど変わります。まずは今日の日付から90日前、その日付と今を見比べるところから始めてみてください。

コメント