Metabase

عبارت‌های سفارشی

Custom expression editor

عبارت‌های سفارشی شبیه فرمول‌ها در نرم‌افزارهای صفحه‌گسترده مثل Excel، Google Sheets و LibreOffice Calc هستند. این عبارت‌ها ابزارهای قدرتمند ویرایشگر Query builder هستند که به شما اجازه می‌دهند سؤال‌های پیچیده‌تری بپرسید.

می‌توانید مستقیماً به فهرست کامل عبارت‌ها هم بروید.

استفاده از عبارت‌های سفارشی برای فیلترها، Metricها و ستون‌های سفارشی

برای استفاده از ویرایشگر عبارت سفارشی، یک Custom Column بسازید (جایی که عبارت سفارشی به‌عنوان فرمول Field برای محاسبهٔ مقدار ستون جدید استفاده می‌شود) یا روی Filter یا Summarize کلیک کنید و گزینهٔ Custom Expression را انتخاب کنید.

در هنگام استفاده از Query builder می‌توانید از عبارت‌ها برای ساخت موارد زیر استفاده کنید:

  • ستون‌های سفارشی: مثلاً می‌توانید از [Subtotal] / [Quantity] برای ساخت ستونی جدید استفاده کنید و نام آن را "Item price" بگذارید.
  • فیلترها: عبارت contains([comment], "Metabase") سطرهایی را نگه می‌دارد که در فیلد comment کلمهٔ "Metabase" وجود داشته باشد.
  • خلاصه‌سازی‌ها (Summaries): که به آن‌ها Metric یا Aggregation هم گفته می‌شود. عبارت Share([Total] > 50) درصد سفارش‌هایی را برمی‌گرداند که مجموع آن‌ها بیش از ۵۰ دلار است.

عبارت خود را بنویسید، برای آن یک نام انتخاب کنید و روی Done کلیک کنید. اگر دکمهٔ Done غیرفعال است، بررسی کنید که عبارت معتبر باشد و حتماً برای آن یک نام در پایین ویرایشگر وارد کرده باشید.

این صفحه مبانی کار با عبارت‌ها را توضیح می‌دهد. می‌توانید فهرست کامل عبارت‌ها در متابیس را ببینید یا یک آموزش گام‌به‌گام دربارهٔ استفاده از عبارت‌های سفارشی در ویرایشگر Notebook را دنبال کنید.

انواع عبارت‌ها

به‌طور کلی دو نوع عبارت داریم: Aggregations و Functions. فهرست کامل را در فهرست عبارت‌ها ببینید.

Aggregationها

Aggregationها مقادیر چند ردیف را برای انجام یک محاسبه استفاده می‌کنند، مثل پیدا کردن میانگین همهٔ مقادیر یک ستون. توابع Aggregation فقط در بخش Summarize ویرایشگر Notebook قابل استفاده هستند، چون برای محاسبه به مقادیر همهٔ ردیف‌ها در آن ستون نیاز دارند. بنابراین اگرچه می‌توانید یک ستون سفارشی با فرمول [Subtotal] + [Tax] بسازید، اما نمی‌توانید Sum([Subtotal] + [Tax]) را بنویسید، مگر این‌که در حال ساخت یک عبارت Metric سفارشی باشید (که در آن مجموع همهٔ Subtotalها و Taxها را با هم جمع می‌کنید).

توابع (Functions)

توابع برعکس Aggregationها، روی هر مقدار در یک ستون به‌صورت جداگانه عملی انجام می‌دهند؛ مثلاً جست‌وجوی یک کلمه در هر مقدار (contains)، گرد کردن مقدار به بالا تا نزدیک‌ترین عدد صحیح (تابع ceil) و غیره.

مرورگر توابع (Function browser)

Function browser

ویرایشگر عبارت یک مرورگر توابع هم دارد تا بتوانید تابع مورد نیاز خود را راحت‌تر پیدا کنید. برای باز کردن مرورگر، روی دکمهٔ f در سمت راست ویرایشگر عبارت کلیک کنید. می‌توانید فهرست توابع و Aggregationها را هم ببینید.

Auto-format

Auto-format expression

برای قالب‌بندی خودکار عبارت‌ها، روی دکمهٔ Auto-format در سمت راست ویرایشگر (آیکون صاعقه داخل براکت‌ها) کلیک کنید.

عملگرهای ریاضی پایه

برای ستون‌های عددی که مقدار عددی (مثل Integer، Float یا Double) دارند، می‌توانید از +، -، * (ضرب) و / (تقسیم) استفاده کنید. برای گروه‌بندی بخش‌های مختلف عبارت هم می‌توانید از پرانتز ( و ) استفاده کنید.

مثلاً می‌توانید ستونی جدید بسازید که اختلاف بین مقدار Total و Subtotal را محاسبه می‌کند: [Total] - [Subtotal].

برای انجام محاسبات روی ستون‌های زمانی (Timestamp) می‌توانید از توابع تاریخ مثل dateDiff استفاده کنید.

عملگرهای شرطی و منطقی (Conditional and Boolean operators) {#conditional-operators}

عملگرهای مقایسه‌ای:

  • >
  • >= (بزرگ‌تر یا مساوی)
  • <
  • <= (کوچک‌تر یا مساوی)
  • =
  • != (نامساوی)

عملگرهای منطقی برای AND, OR, NOT:

  • AND
  • OR
  • NOT

مثلاً می‌توانید فیلتری بسازید که مشتریان ایالت کالیفرنیا یا ورمانت را برگرداند: [State] = "CA" OR [State] = "VT".

هم‌چنین می‌توانید از شرط‌ها در تابع case (هم‌نام if) استفاده کنید:

case([Size] = "L", "LARGE", [SIZE] = "M", "MEDIUM", "SMALL")

برای جزئیات بیشتر به case مراجعه کنید.

ارجاع به ستون‌های دیگر

می‌توانید به ستون‌های موجود در جدول فعلی یا ستون‌هایی که ازطریق کلید خارجی (Foreign key) متصل هستند ارجاع بدهید. نام ستون‌ها باید در براکت مربع نوشته شود، مانند: [Name of Column]. ستون‌های موجود در جدول‌های متصل‌شده را می‌توان این‌طور نوشت: [ConnectedTableName.Column].

ارجاع به Segmentها و Metricها

می‌توانید به Metricها و Segmentهای ذخیره‌شده‌ای که در جدول فعلی موجودند ارجاع بدهید. شیوهٔ نوشتن آن‌ها شبیه ستون‌ها است، مثلاً: [Valid User Sessions].

عبارت‌های فیلتر و شرط‌ها

چند نکته دربارهٔ عبارت‌های فیلتر و شرط‌ها:

  • عبارت‌های فیلتر باید حتماً مقدار Boolean (درست/نادرست) برگردانند. مثلاً می‌توانید بنویسید [Subtotal] + [Tax] < 100. متابیس برای هر ردیف، Subtotal و Tax را جمع می‌کند و بررسی می‌کند که آیا این جمع کمتر از ۱۰۰ است یا نه. اگر باشد، عبارت true می‌شود و متابیس آن ردیف را در نتیجه نگه می‌دارد. اما اگر (به‌شکل اشتباه) فقط بنویسید [Subtotal] + [Tax]، متابیس نمی‌داند با آن چه‌کار کند، چون این عبارت به درست یا نادرست ارزیابی نمی‌شود.
  • آرگومان‌های عملگرهای منطقی مثل AND و OR باید Boolean باشند. مثلاً '[Subtotal] < 100 AND [Tax] > 12 درست است، اما اگر یکی از بخش‌ها Boolean نباشد، معتبر نخواهد بود.
  • می‌توانید داخل بخش شرطی Aggregationهای CountIf و SumIf از توابع استفاده کنید، مثل: CountIf( round([Subtotal]) > 100 OR floor([Tax]) < 10 ).

کار با تاریخ در عبارت‌های فیلتر

اگر می‌خواهید در عبارت‌های فیلتر با تاریخ‌ها کار کنید، فرمت تاریخ باید "YYYY-MM-DD" باشد؛ یعنی چهار رقم برای سال، دو رقم برای ماه و دو رقم برای روز، درون کوتیشن " " و جداشده با خط تیره -.

مثال:

between([Created At], "2020-01-01", "2020-03-31") OR [Received At] > "2019-12-25"

این عبارت ردیف‌هایی را برمی‌گرداند که Created At آن‌ها بین ۱ ژانویهٔ ۲۰۲۰ تا ۳۱ مارس ۲۰۲۰ باشد، یا Received At آن‌ها بعد از ۲۵ دسامبر ۲۰۱۹ باشد.

فهرست عبارت‌ها

برای دیدن فهرست کامل عبارت‌ها به این لینک بروید.

برای آموزش گام‌به‌گام، بخش عبارت‌های سفارشی در Query builder را ببینید.