মার্চেন্ট সেন্টার কোয়েরি ল্যাঙ্গুয়েজ (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
উপলব্ধ আপেক্ষিক তারিখ পরিসরের সম্পূর্ণ তালিকার জন্য ব্যাকরণ দেখুন।