Metabase

مطالعه بیشتر

نحوه اندازه‌گیری تغییر در یک معیار در طول زمان با مقایسه دو یا چند دوره زمانی.

مقایسه‌های دوره‌ای برای سری‌های زمانی

نحوه اندازه‌گیری تغییر در یک معیار در طول زمان با مقایسه دو یا چند دوره زمانی.

مقدمه

این آموزش به شما نشان می‌دهد چگونه داده را در دو یا چند دوره زمانی مقایسه کنید. در اینجا نمودارهایی که می‌خواهیم بسازیم:

یک داشبورد با یک نمودار روند ماهانه، یک نمودار YoY، و یک نمودار تغییر درصد

دستورالعمل‌های گام به گام ارائه می‌دهیم که می‌توانید در متابیس خود همراه باشید.

راه‌اندازی

با جدول Orders از پایگاه داده نمونه که با هر instance تازه متابیس می‌آید کار می‌کنیم.

از یک سؤال که درآمد را محاسبه می‌کند – مجموع کل سفارش‌ها – بر اساس ماه استفاده می‌کنیم.

برای ایجاد سؤال:

  1. یک سؤال جدید از جدول Orders شروع کنید؛
  2. یک خلاصه اضافه کنید: Sum of... ستون Total، group شده بر اساس Created At: Month؛
  3. سؤال را ذخیره کنید.

مقایسه آخرین دوره با استفاده از نمودار روند

اگر فقط می‌خواهید عملکرد یک معیار را در آخرین دوره زمانی در مقابل قبلی (یا چند دوره قبلی) ردیابی کنید، نمودار روند راه است. یک نمودار روند شبیه این است:

نمودار روند

برای ساخت این نمودار، شروع از سؤال "Revenue by month" که در بخش راه‌اندازی ایجاد کردید:

  1. اگر در query builder هستید، روی "Visualize" کلیک کنید تا یک نمودار ایجاد شود. متابیس به طور پیش‌فرض یک نمودار سری زمانی ایجاد می‌کند چون متغیر breakout یک تاریخ است. بیایید تجسم را به یک نمودار روند تغییر دهیم.
  • روی دکمه Visualization در پایین سمت چپ صفحه کلیک کنید؛
  • "Trend" را انتخاب کنید.
  1. تجسم را به Trend تغییر دهید: متابیس آخرین مقدار در داده را نشان می‌دهد، و نحوه مقایسه مقدار با همان معیار در دوره قبلی. همچنین می‌توانید انتخاب کنید با مقادیر static (مثل به یک هدفی که تنظیم کرده‌اید) یا به چندین دوره مقایسه کنید.
  • از نمودار روند، تنظیمات تجسم را با کلیک روی آیکون چرخ‌دنده در پایین سمت چپ باز کنید؛
  • در تب Data، روی Add comparison کلیک کنید؛
  • 12 months ago را انتخاب کنید.
  1. یک مقایسه دیگر با مقدار 12 ماه پیش اضافه کنید

نمودار روند شما حالا شامل دو مقایسه خواهد بود: یک مقایسه با ماه قبلی، و یکی با همان ماه یک سال پیش.

یک نمودار روند با دو مقایسه

💡 نکته: سایر تنظیمات تجسم روند را در تب Display بررسی کنید. به عنوان مثال، می‌توانید یک علامت $ به نمایش درآمد اضافه کنید، یا رنگ‌های استفاده شده برای مقایسه را تغییر دهید.

مقایسه سال به سال

اغلب می‌خواهید نه فقط به آخرین ماه، بلکه به عملکرد در همه ماه‌ها امسال، و نحوه مقایسه آن‌ها با همه ماه‌ها سال گذشته نگاه کنید. به جای ساخت 12 نمودار روند، این اطلاعات را در یک نمودار میله‌ای مثل این جمع‌آوری می‌کنیم:

یک نمودار میله‌ای group شده بر اساس ماه شامل میله‌ها برای سال فعلی و سال گذشته

استفاده از تابع Offset برای دریافت دوره‌های قبلی

از یک تابع عبارت سفارشی مفید Offset استفاده می‌کنیم که یک مقدار در یک ردیف مختلف، مشخص شده توسط offset (مثلاً، 1 ردیف بعد یا 5 ردیف قبل) برمی‌گرداند. اگر قبلاً از عبارات سفارشی استفاده نکرده‌اید، می‌توانید آموزش ما عبارات سفارشی در ویرایشگر notebook را بررسی کنید.

دوباره با سؤال "Total order revenue per month" از راه‌اندازی شروع می‌کنیم.

ابتدا، آنچه نمودار روند انجام داد را replicate می‌کنیم — مقایسه نتیجه ماه با ماه قبلی — اما برای همه ماه‌ها در داده به جای فقط آخرین.

  1. در query builder، یک عبارت Offset جدید در بخش Summarize اضافه کنید: mbql Offset( Sum([Total]), -1) می‌توانید ستون را چیزی مثل "Previous month" نامگذاری کنید (داده شما باید هنوز بر اساس Created At: Month group شده باشد). برای هر ماه، این عبارت مجموع total از ماه قبلی (offset شده با -1) را برمی‌گرداند.
  2. داده را پیش‌نمایش کنید با کلیک روی دکمه play در سمت راست بلوک Summarize. باید سه ستون ببینید: ماه، مجموع total برای آن ماه، و مجموع total از ماه قبلی. نمای جدول با ستون total و همان ستون offset شده با -1 با Offset، می‌توانید به راحتی عملکرد ماهانه برای هر ماه را با ماه قبلی با نگاه به یک ردیف واحد مقایسه کنید.

تجسم داده YoY به عنوان نمودار میله‌ای

اگر می‌خواهیم داده هر ماه را با همان ماه در سال قبلی مقایسه کنیم، می‌توانیم از تابع Offset برای برگرداندن داده از 12 ماه پیش با مشخص کردن offset -12 استفاده کنیم. همچنین می‌توانیم داده را به عنوان یک نمودار میله‌ای به جای جدول برای مقایسه بصری آسان‌تر ارائه دهیم.

از سؤال در بخش قبلی، یا از سؤال راه‌اندازی:

  1. در query builder، یک عبارت Offset سفارشی جدید اضافه کنید (یا موجود را تغییر دهید) در بخش Summarize: mbql Offset( Sum([Total]), -12) می‌توانید ستون جدید را "1 year ago" نامگذاری کنید. اگر ستون از بخش قبلی را ویرایش می‌کنید، یادتان باشد ستون را برای reflect کردن دوره زمانی جدید rename کنید! برای هر ماه، این عبارت مجموع total از ماه فعلی offset شده با 12 ماه – پس، از ماه یک سال پیش – را برمی‌گرداند.
  • یک فیلتر برای Created At بعد از بلوک Summarize اضافه کنید
  • از گزینه فیلتر Relative dates استفاده کنید و Current > Year را انتخاب کنید.
  1. یک فیلتر برای سال فعلی بعد از بلوک Summarize اضافه کنید. نتایج شما شامل همه داده از ابتدای زمان است. در یک نمودار YoY، می‌خواهیم فقط ماه‌های سال فعلی و نحوه مقایسه آن‌ها با همان ماه‌ها در سال گذشته را ببینیم، پس نیاز به فیلتر کردن داده داریم. مهم است فیلتر را بعد از خلاصه کردن داده اضافه کنید، نه قبل. اگر یک فیلتر برای سال فعلی قبل از محاسبه sum اضافه کنید، داده برای سال گذشته در نتیجه نخواهد بود، پس قادر به offset کردن آن نخواهید بود.
  2. داده را پیش‌نمایش کنید. حالا باید فقط ماه‌ها از سال فعلی را ببینید.
  3. نتیجه را به عنوان یک نمودار میله‌ای stacked تجسم کنید. ممکن است نیاز به تغییر نوع تجسم داشته باشید: روی دکمه "Visualize" در پایین سمت چپ صفحه کلیک کنید و "bar chart" را انتخاب کنید.
  • روی آیکون "چرخ‌دنده" در پایین سمت چپ صفحه کلیک کنید
  • به تب Axes تغییر دهید
  • "Split y-axis when necessary" را toggle off کنید
  1. split y-axis را خاموش کنید تا داده را روی همان scale مقایسه کنید بسته به داده شما، متابیس ممکن است split Y-axes برای نمودار میله‌ای ایجاد کند. چون می‌خواهیم نتایج سالانه را روی همان scale مقایسه کنیم، نمودار ما باید فقط یک y-axis داشته باشد. در حال مشاهده تجسم:
  • روی آیکون "چرخ‌دنده" در پایین سمت چپ صفحه کلیک کنید
  • در تب Data، ردیف‌ها برای سری را drag کنید تا به ترتیب صحیح مرتب شوند.
  1. ترتیب میله‌ها را تغییر دهید تا میله سال گذشته در سمت چپ سال فعلی باشد. متابیس میله‌ها را در یک نمودار میله‌ای stacked با استفاده از ترتیب عبارات در بلوک Summarize مرتب می‌کند، پس میله برای سال گذشته در سمت راست میله‌ها برای سال فعلی خواهد بود. بیایید میله‌ها را به ترتیب زمانی مرتب کنیم. در حال مشاهده تجسم:

نمودار شما باید چیزی شبیه این باشد:

نمودار میله‌ای YoY

افزودن یک مقایسه به 2 سال پیش

حالا خودتان امتحان کنید: همان مراحل را دنبال کنید تا یک مقایسه دیگر با داده 2 سال پیش از سال فعلی اضافه کنید.

  1. یک عبارت Offset جدید اضافه کنید، با offset با 24 ماه: mbql Offset( Sum([Total]), -24) می‌توانید آن را چیزی مثل "2 years ago" نامگذاری کنید.
  2. عبارات را در بلوک Summarize با drag کردن آن‌ها reorder کنید (یا میله‌ها را در نمودار میله‌ای reorder کنید). چون متابیس از ترتیب عبارات در بلوک Summarize برای ترتیب میله‌ها در نمودار استفاده می‌کند، وقتی یک offset 2 ساله جدید اضافه می‌کنید، متابیس آن ستون offset را در انتها شامل می‌کند. برای قرار دادن offset 2 ساله قبل از offset 1 ساله، نیاز دارید یا میله‌ها را در تجسم reorder کنید (مثل قبل)، یا عبارات خود را با drag کردن آن‌ها در بلوک Summarize در ویرایشگر reorder کنید.
  3. نمودار را تجسم کنید.

نمودار شما باید چیزی شبیه این باشد:

نمودار میله‌ای YoY با مقایسه‌ها با 2 سال گذشته

اندازه‌گیری تفاوت و تغییر

می‌توانید از تابع Offset با مقداری ریاضی برای محاسبه تغییر از یک دوره به دوره دیگر – در مقدار یا در درصد، برای دریافت داده مثل این استفاده کنید:

جدولی که ماه، درآمد سال فعلی، درآمد 1 سال پیش، تفاوت بین دو، و تفاوت در % را نشان می‌دهد

با فرض اینکه از قبل یک نمودار YoY با استفاده از دستورالعمل‌های بخش قبلی ساخته‌اید:

  1. در query builder، یک خلاصه جدید برای تغییر YoY در درآمد اضافه کنید: mbql Sum([Total]) - Offset(Sum([Total]), -12) برای هر ماه، این عبارت درآمد برای آن ماه را در Sum([Total]) محاسبه می‌کند، و سپس درآمد از ماه قبلی را در Offset(Sum([Total]), -12) کم می‌کند. می‌توانید داده را پیش‌نمایش کنید تا نتیجه را ببینید.
  2. یک خلاصه جدید برای تغییر در درآمد به عنوان درصد اضافه کنید: برای محاسبه درصدی که تغییر YoY از مقدار سال گذشته می‌سازد، عبارت سفارشی را اضافه کنید: mbql ( Sum([Total]) - Offset(Sum([Total]), -12) ) / Offset(Sum([Total]), -12) اینجا تفاوت بین مقادیر سال فعلی و سال گذشته را بر مقدار سال گذشته تقسیم می‌کنیم.
  3. نتایج را به عنوان جدول تجسم کنید. اگر از نمودار میله‌ای YoY شروع کردید، نوع تجسم را به جدول تغییر دهید: روی دکمه "Visualization" در پایین سمت چپ صفحه کلیک کنید و "Table" را انتخاب کنید.
  • روی header ستون کلیک کنید تا منوی action ستون باز شود
  • روی آیکون چرخ‌دنده کلیک کنید تا تنظیمات فرمت ستون باز شود
  • Style > Percentage را انتخاب کنید
  1. ستون تغییر درصد را به عنوان درصد فرمت کنید. به طور پیش‌فرض، متابیس ستون را به عنوان اعشار نمایش می‌دهد، اما می‌توانید فرمت ستون را برای نمایش آن به عنوان درصد تغییر دهید:

💡 نکته: می‌توانید از فرمت شرطی روی جدول برای آسان‌تر کردن خواندن نمودار برای مشتریان استفاده کنید. به عنوان مثال، می‌توانید تغییرات مثبت را سبز و تغییرات منفی را قرمز رنگ کنید، با شدت‌های مختلف بر اساس بزرگی تغییر. بیشتر درباره فرمت شرطی یاد بگیرید.

یادداشت‌هایی برای متخصصان SQL

متابیس همه پرس‌وجوهای ایجاد شده در query builder را به SQL ترجمه می‌کند. عبارت سفارشی Offset که برای ایجاد مقایسه period-over-period استفاده کردیم به توابع window SQL LAG و LEAD ترجمه می‌شود.

می‌توانید SQL تولید شده توسط متابیس را با کلیک روی دکمه "View SQL" در گوشه بالا سمت راست query builder ببینید.

به عنوان مثال، در اینجا SQL برای سؤالی که در تجسم داده YoY به عنوان نمودار میله‌ای ایجاد کردیم:

SELECT
  "source"."CREATED_AT" AS "CREATED_AT",
  "source"."sum" AS "sum",
  "source"."1 year ago" AS "1 year ago"
FROM
  ( SELECT
      "source"."CREATED_AT" AS "CREATED_AT",
      SUM("source"."TOTAL") AS "sum",

      LAG(SUM("source"."TOTAL"), 12) OVER (
         ORDER BY "source"."CREATED_AT" ASC
      ) AS "1 year ago"

    FROM
      ( SELECT
          DATE_TRUNC('month', "PUBLIC"."ORDERS"."CREATED_AT") AS "CREATED_AT",
          "PUBLIC"."ORDERS"."TOTAL" AS "TOTAL"
        FROM
          "PUBLIC"."ORDERS"
      ) AS "source"
    GROUP BY
      "source"."CREATED_AT"
    ORDER BY
      "source"."CREATED_AT" ASC
  ) AS "source"
WHERE
  ("source"."CREATED_AT" >= DATE_TRUNC('year', NOW()))
   AND (
    "source"."CREATED_AT" < DATE_TRUNC('year', DATEADD('year', 1, NOW())) );

مطالعه بیشتر

[

](start.html)

[

](compare-times.html)