5

store_visits次の構造のテーブルがあります。

store_visits:
 store_name: string
 visit_count: integer
 visit_date: date

私の目標は、各店舗と特定の日付範囲について、以下を計算するクエリを作成することです。

  • 期間中の平均訪問数 (現在 を使用AVG(visit_count))
  • 来店数が増加しているか減少しているか
  • 増減の相対率 (1 から 4 のスケールで、1 = 低率、4 = 高率)

訪問数の相対的な増加/減少率は、方向性のみを目的としています。常に線形スケールになります。

これを行うための MySQL クエリを作成するのに 1 日を費やしましたが、理解できません。

どんな助けでも大歓迎です。

ありがとう -スコット

4

1 に答える 1

4

日付範囲の前半と後半の来店数を比較したいだけだと仮定すると、2 つのサブクエリを使用して過去 40 日間にわたる各範囲のカウントを取得する例を次に示します。

select 
  ((endVisits + startVisits)/40) average, 
  (endVisits > startVisits) increasing, 
  ((endVisits - startVisits)/(startVisits) * 100) percentChange 
from 
  (select sum(visit_count) startVisits 
    from store_visit 
    where 
      visit_date > current_date - 40 
      and visit_date <= current_date - 20) startRange,
  (select sum(visit_count) endVisits 
    from store_visit 
    where  
      visit_date > current_date - 20) endRange;

ノート

1 ~ 4 の増加量を計算する方法がどこにあるのかわからないので、パーセンテージにしました。それを任意のロジックに変更できます。また、必要に応じてサブクエリの日付範囲を更新する必要があります。

編集: 平均を ((endVisits + startVisits)/2) ではなく ((endVisits + startVisits)/40) に更新しました。サブクエリで avg 関数を使用し、それらの合計を 2 で割って、期間全体の平均を取得することもできます。

于 2011-06-22T18:38:00.540 に答える