Merchant Center কোয়েরি ল্যাঙ্গুয়েজ

Merchant Center কোয়েরি ল্যাঙ্গুয়েজ (MCQL) হল SQL-এর মতো একটি কোয়েরি ল্যাঙ্গুয়েজ। আপনি Merchant Reports API-এর সাথে MCQL ব্যবহার করে আপনার প্রোডাক্ট এবং যে মার্কেটে সেগুলি প্রতিযোগিতা করছে তার পারফর্ম্যান্স ডেটা পেতে পারেন।

ব্যাকরণ

এখানে MCQL ব্যাকরণ রেফারেন্স (রেগুলার এক্সপ্রেশন নোটেশনে) দেওয়া হল:

Query            -> SelectClause FromClause? WhereClause? OrderByClause? LimitClause?
SelectClause     -> SELECT FieldName (, FieldName)*
FromClause       -> FROM TableName
WhereClause      -> WHERE Condition (AND Condition)*
OrderByClause    -> ORDER BY Ordering (, Ordering)*
LimitClause      -> LIMIT PositiveInteger

Condition        -> FieldName Operator Value | FieldName BETWEEN Value AND Value
Operator         -> = | != | > | >= | < | <= | <> | IN | NOT IN |
                    CONTAINS ANY | CONTAINS ALL | CONTAINS NONE | DURING |
                    LIKE | NOT LIKE | REGEXP_MATCH | NOT REGEXP_MATCH
Value            -> Number | NumberList | String | StringList | Function
Ordering         -> FieldName (ASC | DESC)?

FieldName        -> [a-z] ([a-zA-Z0-9._])*
TableName        -> [A-Z] ([a-zA-Z_])*

StringList       -> ( String (, String)* )
NumberList       -> ( Number (, Number)* )

PositiveInteger  -> [1-9] ([0-9])*
Number           -> -? [0-9]+ (. [0-9] [0-9]*)?
String           -> (' Char* ') | (" Char* ")
Function         -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS |
                    LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN |
                    LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY |
                    THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY

আপনি নিম্নলিখিত চিহ্নগুলি ব্যবহার করতে পারেন:

  • ?ঐচ্ছিক এলিমেন্ট নির্দেশ করে।
  • * মানে শূন্য বা তার বেশি; + মানে এক বা তার বেশি।
  • (xxxxxx) একটি গ্রুপিং নির্দেশ করে।
  • [a-z0-9] অক্ষরের রেঞ্জ বোঝায়।
  • |-এর অর্থ হল "অথবা"।

ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়

বেশিরভাগ MCQL অপারেটরে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়:

অপারেটর ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়
= অথবা != ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়
(NOT) IN ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়
(NOT) LIKE ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়
এতে রয়েছে (...) ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়
REGEXP_MATCH ঐচ্ছিকভাবে দুটিই

ক্লজ

MCQL-এর মাধ্যমে আপনি যেসব ক্লজ কোয়েরি করতে পারবেন সেগুলি এখানে দেওয়া হল:

বেছে নিন

SELECTক্লজ, কমা দিয়ে আলাদা করা ফিল্ডের তালিকা থেকে তথ্য তুলে আনে।

আপনি যে ভিউ ব্যবহার করছেন সেখান থেকে যেকোনও ফিল্ড বেছে নিতে পারবেন। আপনি বেছে নিতে পারেন এমন কিছু ফিল্ডের উদাহরণ এখানে দেওয়া হল:

আপনি একটি অনুরোধে একাধিক ফিল্ডের ধরন কোয়েরি করতে পারেন। একটা উদাহরণ দেওয়া হল:

SELECT
  date,
  marketing_method,
  impressions,
  clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'

থেকে

FROM ক্লজটি অনুরোধে ডেটা আনার জন্য টেবিলটি নির্দিষ্ট করে। আপনি FROM ক্লজে শুধুমাত্র একটি ফিল্ড নির্দিষ্ট করতে পারবেন। সব কোয়েরির জন্য FROM ক্লজ প্রয়োজন।

WHERE

আপনার অনুরোধের জন্য ডেটা ফিল্টার করতে WHERE ক্লজ ব্যবহার করুন। পারফর্ম্যান্স কোয়েরির জন্য WHERE ক্লজ প্রয়োজন। আপনি সব সেগমেন্ট ফিল্ড এবং অতিরিক্ত মেট্রিক ফিল্ডের মাধ্যমে ফিল্টার করতে পারবেন, যদি আপনি SELECT ক্লজে সেগুলি উল্লেখ করেন।

এখানে একটি উদাহরণ দেওয়া হল যেখানে WHERE ব্যবহার করে শুধুমাত্র নির্দিষ্ট সময়সীমার (আগস্ট মাস) ইম্প্রেশন দেখানো হয়েছে:

SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'

আপনি AND অপারেটর ব্যবহার করে একটি কোয়েরিতে একাধিক শর্তের মাধ্যমে ফিল্টার করতে পারবেন। সম্পূর্ণ শর্তের মধ্যে AND ব্যবহার করুন, যেমন: WHERE marketing_method != "ADS" AND marketing_method != "ORGANIC"। আপনি একটি শর্তে ভ্যালুর মধ্যে AND ব্যবহার করতে পারবেন না, যেমন: WHERE marketing_method != "ADS" AND "ORGANIC"।

এখানে একটি উদাহরণ দেওয়া হল যা আগস্ট মাসে ADS মার্কেটিং পদ্ধতির জন্য ১০০টির বেশি ক্লিক সহ অফার প্রতি ক্লিকের সংখ্যা দেখায়:

SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
  AND marketing_method = 'ADS'
  AND date BETWEEN '2023-08-01' AND '2023-08-31'

WHERE ক্লজে OR কাজ করে না। অপারেটরে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়। অপারেটরের সম্পূর্ণ তালিকার জন্য, ব্যাকরণ দেখুন।

ORDER BY (ঐচ্ছিক)

ORDER BY ক্লজ আপনাকে নির্দিষ্ট ক্রমে ফলাফল ফিরিয়ে আনতে দেয়।

field_name, তারপর ASC বা DESC-এর মাধ্যমে অর্ডার নির্দিষ্ট করুন। আপনি শুধুমাত্র আপনার কোয়েরির SELECT ক্লজে নির্দিষ্ট করা ফিল্ড অনুসারে অর্ডার করতে পারবেন। আপনি নির্দিষ্ট না করলে, ORDER BY ডিফল্ট হিসেবে ASC-এ সেট হয়ে যায়।

নিম্নলিখিত কোয়েরি, ক্লিকের সংখ্যা অনুযায়ী, সর্বোচ্চ থেকে সর্বনিম্ন ক্রমে, ফেরত আসা সারিগুলিকে সাজায়:

SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC

আপনি কমা দিয়ে আলাদা করা তালিকা ব্যবহার করে ORDER BY ক্লজে একাধিক ফিল্ড নির্দিষ্ট করতে পারবেন।

যেমন, নিম্নলিখিত কোয়েরির ফলাফল offer_id অনুযায়ী ছোট থেকে বড় ক্রমে, তারপরে ইম্প্রেশনের সংখ্যা অনুযায়ী বড় থেকে ছোট ক্রমে, তারপরে ক্লিকের সংখ্যা অনুযায়ী বড় থেকে ছোট ক্রমে সাজানো হয়েছে:

SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
  offer_id,
  impressions DESC,
  clicks DESC

সীমা

LIMIT ক্লজ আপনাকে কতগুলি ফলাফল দেখাতে হবে তা নির্দিষ্ট করতে দেয়।

এখানে একটি উদাহরণ দেওয়া হল যা আরও সারি উপলভ্য থাকলেও শুধুমাত্র ৫০টি ফলাফল দেখায়।

SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50

ফলাফলের দীর্ঘ তালিকা ম্যানেজ করতে pageSize ফিল্ড ব্যবহার করুন।

তারিখের রেঞ্জ

MCQL আপনাকে কাস্টম বা আপেক্ষিক তারিখের রেঞ্জ নির্দিষ্ট করতে দেয়। সব পারফর্ম্যান্স কোয়েরির জন্য date রেঞ্জ নির্দিষ্ট করতে আপনাকে অবশ্যই WHERE ক্লজ ব্যবহার করতে হবে।

কাস্টম

আপনি ISO 8601(YYYY-MM-DD) তারিখ নিম্নলিখিত ফর্ম্যাটে উল্লেখ করতে পারেন:

  • date BETWEEN '2021-01-01' AND '2021-01-31'
  • date >= '2021-01-01' AND date <= '2021-01-31'

আপনি তারিখের স্ট্রিং সিঙ্গেল কোট (') বা ডবল কোট (") দিয়ে উল্লেখ করতে পারেন।

আত্মীয়

আপনি BETWEEN এবং AND-এর পরিবর্তে DURING ব্যবহার করে LAST_30_DAYS বা THIS_MONTH-এর মতো একটি আপেক্ষিক তারিখের রেঞ্জ নির্দিষ্ট করতে পারেন:

WHERE date DURING LAST_30_DAYS

উপলভ্য আপেক্ষিক তারিখের রেঞ্জের সম্পূর্ণ তালিকা দেখতে ব্যাকরণ দেখুন।