Merchant Center Query Language

মার্চেন্ট সেন্টার কোয়েরি ল্যাঙ্গুয়েজ (MCQL) হল একটি কোয়েরি ল্যাঙ্গুয়েজ, SQL এর মতো। আপনার পণ্য এবং তারা যে বাজারে প্রতিদ্বন্দ্বিতা করছে তার কর্মক্ষমতা ডেটা পুনরুদ্ধার করতে আপনি মার্চেন্ট রিপোর্ট 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 অপারেটর কেস-সংবেদনশীল:

অপারেটর কেস সংবেদনশীলতা
= বা!= কেস সংবেদনশীল
(না কেস সংবেদনশীল
(মত না কেস সংবেদনশীল
রয়েছে (...) কেস সংবেদনশীল
REGEXP_MATCH ঐচ্ছিকভাবে উভয়

ধারা

আপনি MCQL এর সাথে প্রশ্ন করতে পারেন এমন ধারাগুলি এখানে রয়েছে:

নির্বাচন করুন

SELECT ক্লজটি পুনরুদ্ধার করার জন্য ক্ষেত্রগুলির একটি কমা দ্বারা পৃথক করা তালিকা নেয়।

আপনি যে ভিউ ব্যবহার করছেন তা থেকে আপনি যেকোনো ক্ষেত্র নির্বাচন করতে পারেন। এখানে আপনি নির্বাচন করতে পারেন এমন কিছু ক্ষেত্রের উদাহরণ রয়েছে:

আপনি একটি একক অনুরোধে একাধিক ক্ষেত্রের ধরন জিজ্ঞাসা করতে পারেন। এখানে একটি উদাহরণ:

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

থেকে

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

কোথায়

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

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

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

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

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

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
  AND marketingMethod = 'ADS'
  AND date BETWEEN '2020-08-01' AND '2020-08-31'

WHERE ক্লজ OR সমর্থন করে না। অপারেটরগুলি কেস-সংবেদনশীল। অপারেটরদের সম্পূর্ণ তালিকার জন্য, ব্যাকরণ দেখুন।

অর্ডার করুন (ঐচ্ছিক)

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

একটি fieldName , তারপর ASC বা DESC দ্বারা অর্ডারটি নির্দিষ্ট করুন। আপনি শুধুমাত্র আপনার প্রশ্নের SELECT ক্লজে নির্দিষ্ট ক্ষেত্র দ্বারা অর্ডার করতে পারেন। আপনি নির্দিষ্ট না করলে ডিফল্টরূপে ASC তে ORDER BY

নিম্নলিখিত ক্যোয়ারীটি সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত ক্লিকের সংখ্যা অনুসারে প্রত্যাবর্তিত সারিগুলিকে আদেশ করে:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC

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

উদাহরণ স্বরূপ, নিচের কোয়েরির ফলাফলগুলি offerId দ্বারা ক্রমবর্ধমান ক্রমানুসারে সাজানো হয়, তারপরে ইম্প্রেশনের সংখ্যা অনুসারে নিচের ক্রমানুসারে, তারপরে ক্লিকের সংখ্যা অনুসারে নিচের ক্রমে সাজানো হয়:

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

সীমা

LIMIT ধারা আপনাকে ফলাফলের সংখ্যা নির্দিষ্ট করতে দেয়।

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

SELECT offerId, impressions
FROM ProductPerformanceView
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

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

,

মার্চেন্ট সেন্টার কোয়েরি ল্যাঙ্গুয়েজ (MCQL) হল একটি কোয়েরি ল্যাঙ্গুয়েজ, SQL এর মতো। আপনার পণ্য এবং তারা যে বাজারে প্রতিদ্বন্দ্বিতা করছে তার কর্মক্ষমতা ডেটা পুনরুদ্ধার করতে আপনি মার্চেন্ট রিপোর্ট 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 অপারেটর কেস-সংবেদনশীল:

অপারেটর কেস সংবেদনশীলতা
= বা!= কেস সংবেদনশীল
(না কেস সংবেদনশীল
(মত না কেস সংবেদনশীল
রয়েছে (...) কেস সংবেদনশীল
REGEXP_MATCH ঐচ্ছিকভাবে উভয়

ধারা

আপনি MCQL এর সাথে প্রশ্ন করতে পারেন এমন ধারাগুলি এখানে রয়েছে:

নির্বাচন করুন

SELECT ক্লজটি পুনরুদ্ধার করার জন্য ক্ষেত্রগুলির একটি কমা দ্বারা পৃথক করা তালিকা নেয়।

আপনি যে ভিউ ব্যবহার করছেন তা থেকে আপনি যেকোনো ক্ষেত্র নির্বাচন করতে পারেন। এখানে আপনি নির্বাচন করতে পারেন এমন কিছু ক্ষেত্রের উদাহরণ রয়েছে:

আপনি একটি একক অনুরোধে একাধিক ক্ষেত্রের ধরন জিজ্ঞাসা করতে পারেন। এখানে একটি উদাহরণ:

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

থেকে

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

কোথায়

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

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

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

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

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

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
  AND marketingMethod = 'ADS'
  AND date BETWEEN '2020-08-01' AND '2020-08-31'

WHERE ক্লজ OR সমর্থন করে না। অপারেটরগুলি কেস-সংবেদনশীল। অপারেটরদের সম্পূর্ণ তালিকার জন্য, ব্যাকরণ দেখুন।

অর্ডার করুন (ঐচ্ছিক)

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

একটি fieldName , তারপর ASC বা DESC দ্বারা অর্ডারটি নির্দিষ্ট করুন। আপনি শুধুমাত্র আপনার প্রশ্নের SELECT ক্লজে নির্দিষ্ট ক্ষেত্র দ্বারা অর্ডার করতে পারেন। আপনি নির্দিষ্ট না করলে ডিফল্টরূপে ASC তে ORDER BY

নিম্নলিখিত ক্যোয়ারীটি সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত ক্লিকের সংখ্যা অনুসারে প্রত্যাবর্তিত সারিগুলিকে আদেশ করে:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC

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

উদাহরণ স্বরূপ, নিচের কোয়েরির ফলাফলগুলি offerId দ্বারা ক্রমবর্ধমান ক্রমানুসারে সাজানো হয়, তারপরে ইম্প্রেশনের সংখ্যা অনুসারে নিচের ক্রমানুসারে, তারপরে ক্লিকের সংখ্যা অনুসারে নিচের ক্রমে সাজানো হয়:

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

সীমা

LIMIT ধারা আপনাকে ফলাফলের সংখ্যা নির্দিষ্ট করতে দেয়।

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

SELECT offerId, impressions
FROM ProductPerformanceView
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

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