মার্চেন্ট সেন্টার কোয়েরি ল্যাঙ্গুয়েজ (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,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
থেকে
FROM ক্লজটি অনুরোধে ডেটা আনার জন্য টেবিল নির্দিষ্ট করে। আপনি FROM ক্লজে শুধুমাত্র একটি ফিল্ড নির্দিষ্ট করতে পারেন। সমস্ত কোয়েরির জন্য FROM ক্লজটি আবশ্যক।
কোথায়
আপনার অনুরোধের ডেটা ফিল্টার করতে 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 ক্লজটি আপনাকে একটি নির্দিষ্ট ক্রমে ফলাফল পেতে সাহায্য করে।
একটি 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
উপলব্ধ আপেক্ষিক তারিখের পরিসরের সম্পূর্ণ তালিকার জন্য ব্যাকরণ দেখুন।